spring security 实现form-login功能

一、首先我们知道自定义一个Security的filter的格式为

<custom-filter ref="myFilter"  position="FORM_LOGIN_FILTER"/>
<!-- position 可以换成 befor after-->

其中security过滤的加载顺序如下

这里写图片描述
其中需要重写的是用户登录filter 也就是 FORM_LOGIN_FITER

二、
然后我们需要自定义一个类,继承AbstractAuthenticationProcessingFilter

public class MySpecialAuthenticationFilter extends  AbstractAuthenticationProcessingFilter

三、然后在配置bean

 <beans:bean id="myFilter" class="MySpecialA
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security提供了Remember-me功能,可以让用户在关闭浏览器后仍然保持登录状态。实现Remember-me功能的步骤如下: 1. 在Spring Security配置文件中开启Remember-me功能: ``` <http> ... <remember-me key="myAppKey" user-service-ref="myUserDetailsService" token-validity-seconds="86400" /> ... </http> ``` 2. 创建一个实现UserDetailsService接口的类,用于从数据库中获取用户信息: ``` @Service("myUserDetailsService") public class MyUserDetailsService implements UserDetailsService { @Autowired private UserRepository userRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userRepository.findByUsername(username); if (user == null) { throw new UsernameNotFoundException("User not found"); } return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), AuthorityUtils.createAuthorityList(user.getRoles())); } } ``` 3. 在登录页面中添加Remember-me的复选框: ``` <form method="post" action="/login"> <input type="text" name="username" /> <input type="password" name="password" /> <input type="checkbox" name="remember-me" /> Remember me <input type="submit" value="Login" /> </form> ``` 4. 在Spring Security配置文件中配置Remember-me的TokenRepository: ``` <bean id="myPersistentTokenRepository" class="org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl"> <property name="dataSource" ref="dataSource" /> </bean> ``` 5. 在Spring Security配置文件中配置Remember-me的TokenValiditySeconds: ``` <remember-me key="myAppKey" user-service-ref="myUserDetailsService" token-validity-seconds="86400" token-repository-ref="myPersistentTokenRepository" /> ``` 这样就完成了Remember-me功能的配置和使用。当用户勾选了Remember-me,并且关闭了浏览器后再次打开网站时,Spring Security会自动读取浏览器中的cookie,验证用户的身份,如果验证通过,则自动登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值