ZVVQ代理分享网

如何在 Spring Security 中自定义登录表单以使用自定

作者:zvvq博客网
导读要在 spring security 中自定义登录表单以使用自定义数据库,可以按照以下步骤操作: 创建自定义 userdetailss​​ervice: 实现 userdetailss​​ervice 接口以从自定义数据库加载用户详细信息。

需在 spring security 中自定登陆表格以使用自定数据库,可以按以下步骤操作:

建立自定 userdetailsservice:

完成 userdetailsservice 插口以从自定数据库载入客户详细资料。

重写 loaduserbyusername 方式来查询数据库里的客户详细资料。

配备 spring security:

在 spring security配置中,界定 userdetailsservice bean。

配备 authenticationmanager 以使用您的自定义 userdetailsservice。

根据特定登陆页面 url 和登陆解决 url 来自界定登陆表格。

完成自定登陆表格:

为自定登陆表格建立 jsp 或 html 文档。

包含账户密码的输入字段及其提交按钮。

应用spring security配置中指定登陆解决url来提交表单。

这是一个实例完成:

建立自定 userdetailsservice公共类 customuserdetailsservice 完成 userdetailsservice {

@autowired

私 jdbctemplate jdbctemplate;@override public userdetails loaduserbyusername(string username) throws usernamenotfoundexception { string query = "select from users where username = ?"; user user = jdbctemplate.queryforobject(query, new object[]{username}, new userrowmapper()); if (user == null) { throw new usernamenotfoundexception("user not found"); } return user; }}

配备spring security@配备

@enablewebsecurity

公共类 securityconfig 拓展websecurityconfigureradapter{

@autowired

个人 customuserdetailsservice customuserdetailsservice;@Autowired private PasswordEncoder passwordEncoder; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(customUserDetailsService) .passwordEncoder(passwordEncoder); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/login").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .loginProcessingUrl("/login") .defaultSuccessUrl("/welcome") .failureUrl("/login?error") .permitAll(); }}

完成自定登陆表格在 src/main/webapp/web-inf/views 目录(或同等部位)中创建一个 login.jsp (或 login.html)文档:

登陆

登录用户名:

密码:

登陆

登录名或密码失效。

/c:假如

在本例中,登陆表单提交到 /login url,这是 spring security配置中指定登陆解决 url。

依照以下步骤,你可以在 spring security中自定登陆表格,以使用自定数据库开展客户身份认证。

以上就是怎样在 Spring Security 中自定登陆表格以使用自定数据库的详细内容,大量请关注其他类似文章!