需在 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 中自定登陆表格以使用自定数据库的详细内容,大量请关注其他类似文章!