MD5加密 spring securtiy

MD5加密 spring securtiy

1.MD5加密的说明,以及此方法的好处

MD5:不可逆的加密算法,但是一样的数据,每次加密的结果都一样。一般为了加强安全性,使用加盐的方式 MD5(“密码”+“盐值”),但是手动加盐值,挺复杂,下面的方法封装了加盐步骤,使用更方便

2.spring securtiy依赖

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-web</artifactId>
  <version>5.3.2.RELEASE</version>
</dependency>

3.使用方法

 //前端传过来的密码参数
String password = "123456";

//加密:encode 方法自动加盐,即使100个一样的密码,加密后,都不一样
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String encode = passwordEncoder.encode(password);

//加密后的密码
System.out.println(encode);


//用明文密码和加密后的密码去匹配,返回密码是否正确
boolean matches = passwordEncoder.matches(password, encode);
System.out.println(matches);


//输出结果
$2a$10$VcWvGiuCMXThcq0GwOjRO.w1uR8U0.EwT9oa7Sj.MVe7tx1Ddo6qG
true


要在Spring Security中实现限制异地登录并踢用户下线,你可以按照以下步骤进行操作: 1. 创建一个自定义的AuthenticationProvider实现类,用于处理认证逻辑。你可以继承`DaoAuthenticationProvider`类,并重写`additionalAuthenticationChecks`方法。 在这个方法中,你可以获取用户的登录信息,并将其与数据库中存储的用户信息进行比较。如果发现用户已经在其他地方登录,则可以抛出一个自定义的异常,表示异地登录。 2. 创建一个自定义的`AuthenticationSuccessHandler`实现类,用于处理用户成功登录后的逻辑。在这个类中,你可以检查当前登录用户是否已经在其他地方登录。如果是,则可以采取相应的措施来踢掉之前的登录用户。 3. 在Spring Security的配置类中,配置上述的自定义AuthenticationProvider和AuthenticationSuccessHandler。 你可以通过重写`configure`方法来进行配置,例如: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomAuthenticationProvider customAuthenticationProvider; @Autowired private CustomAuthenticationSuccessHandler customAuthenticationSuccessHandler; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(customAuthenticationProvider); } @Override protected void configure(HttpSecurity http) throws Exception { http .formLogin() .successHandler(customAuthenticationSuccessHandler) .and() .logout() .logoutSuccessUrl("/login") .and() .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .anyRequest().authenticated(); } } ``` 4. 在自定义的AuthenticationProvider中,你可以使用Spring Security提供的`SessionRegistry`类来获取当前所有活动的用户会话。通过遍历会话列表,你可以找到与当前用户相同的用户,并将其强制下线。 需要注意的是,上述的实现方式是基于Spring Security的Session管理机制。如果你使用了其他的会话管理方式,可能需要相应地修改实现逻辑。此外,为了确保异地登录的准确性,你可能还需要考虑一些边界情况,例如用户主动注销登录和会话过期等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值