028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Springsecurity02中怎么自定义用户登录页面和登录处理逻辑

Spring security 02中怎么自定义用户登录页面和登录处理逻辑,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

站在用户的角度思考问题,与客户深入沟通,找到新平网站设计与新平网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名网站空间、企业邮箱。业务覆盖新平地区。

Spring security 系列博客目录

对应源代码

开篇

上一篇(在项目里面引入spring-security会发生什么)我们将 Spring-seccurity 引入到了我们的spring-boot工程中,没有做多余的配置,spring-security 就已经默认帮我们配置了一个拦截器,应用启动后,当我们访问应用提供的资源时,都会跳转到 security 为我们提供的一个默认登陆页,当我们输入security为我们提供的用户名和密码,登陆成功后,就可以获取我们需要的资源。那么问题来了!我们如何自定义自己的登录页面,以及使用我们自己的用户信息去登录呢?

实战

创建工程

为了不影响之前的版本,我们这里新建一个模块 spring-security-02,之前的版本是spring-security-01. https://github.com/nimo10050/spring-security-sample/tree/master/spring-security-02

引入依赖

依赖跟上个版本一样,如下:

	
		
			org.springframework.boot
			spring-boot-starter-security
		
		
			org.springframework.boot
			spring-boot-starter-web
		

	

新建 SpringSecurity 配置类

既然我们需要自定义一些东西,只能通过额外配置的方式来实现。所以这里引入了spring-security的配置类

UserDetailService 接口

通过重写 UserDetailService 接口的 loadUserByUsername方法来实现登录逻辑,在loadUserByUsername 方法里我们可以读取数据库或者其他存储介质,来校验我们的用户是否存在。最后将我们实现的类配置到config方法中。

/**
 * 自定义登录处理逻辑
 */
public class UserDetailServiceImpl implements UserDetailsService {

/*    @Autowired
private PasswordEncoder passwordEncoder;*/

/**
 * @param username 登录页面输入的用户名
 * @return
 * @throws UsernameNotFoundException
 */
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    // TODO 根据 username 去用户表查询出来用户的信息,然后进行验证

    // 验证成功后,返回Spring-Security 提供的 User 对象
    // 对应三个构造参数依次是: 1.用户名 2.密码(经过 passwordEncoder 加密后的密码) 3.权限列表
    return new User(username, "$2a$10$g1gzj4KvMNY1kMZT1xDx9ufLuaDvCFDpX.PdETx85zQwXI/Mn4ttC", AuthorityUtils.createAuthorityList("admin"));
}

public static void main(String[] args) {
    System.out.println(new BCryptPasswordEncoder().encode("123456"));// $2a$10$g1gzj4KvMNY1kMZT1xDx9ufLuaDvCFDpX.PdETx85zQwXI/Mn4ttC
}
}

其他需要注意的点

http.authorizeRequests().antMatchers("/form/login","/loginPage.html").permitAll().anyRequest().authenticated();

关于Spring security 02中怎么自定义用户登录页面和登录处理逻辑问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


网站名称:Springsecurity02中怎么自定义用户登录页面和登录处理逻辑
转载源于:http://www.tsicrk.com/article/gcepds.html

其他资讯

让你的专属顾问为你服务

2.4033s