SSM集成SpringSecurity(十一):rememberMe和获取登录用户信息

释放双眼,带上耳机,听听看~!

rememberMe

springSecurity提供了一个rememberMe功能,可以让用户在一定时间内进行无密码登录。比如说在有效的时间内关闭了浏览器,然后重新打开一样有效。

该功能不是记住密码,大家不要弄混淆了。

1: login.jsp文件加入,name必须是remember-me

记住我:<input type="checkbox" name="remember-me" value="true"/>

2: 配置spring-security.xml文件。在最下面加上

<bean id="jdbcTokenRepository" class="org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl">
<property name="dataSource" ref="dataSource"/>
<!– 系统启动自动创建,第一次的时候打开,后来需要关闭 –>
<property name="createTableOnStartup" value="true"/>
</bean>

在http标签中加上

<!– token-validity-seconds: 有效秒数 –>

<security:remember-me token-repository-ref="jdbcTokenRepository" token-validity-seconds="3600"/>

3:启动项目试试吧。

获取登录用户信息

获取登录的用户信息可以使用SecurityContextHolder。下面的代码可以在controller和service中使用。


1
2
3
4
5
6
7
8
9
10
11
1
2//获取登录后用户: UserDetail对象
3Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
4if(principal!=null){
5    if(principal instanceof  UserDetails){
6        UserDetails userDetails = (UserDetails)principal;
7// 用户名
8        String username = userDetails.getUsername();
9    }
10}
11

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C++回调函数

2022-1-11 12:36:11

安全活动

360搜索悟空算法横空出世灰色产业链是否难逃此劫?

2016-12-27 14:23:02

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索