spring security 添加用户个数和所有用户功能
Posted web小菜鸟ing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring security 添加用户个数和所有用户功能相关的知识,希望对你有一定的参考价值。
在使用spring security框架的好处之一就是
对用户管理很方便
例如,本文所说的对当前在线用户数目的显示和所有用户名显示
主要用到的是
sessionRegistry这个,它所在的包是
import org.springframework.security.core.session.SessionRegistry;
首先我们在controller里面autowire下
@Autowired
SessionRegistry sessionRegistry;
蓝后,就可以在对应的controller写方法啦
1.获得在线人数
比如,我在jumpController里面,设置了
@ModelAttribute("numUsers")
public int getNumberOfUsers()
return sessionRegistry.getAllPrincipals().size();
modelAttribute是指我们在后面所遇的mapping之前都会返回这个,
sessionRegistry.getAllPrincipals().size();
这个方法返回的是userdetails的所有用户个数,前台展示用户个数就可以使用jstl标签
<button id="currenUsersNum" οnclick="checkOnlineUsers()" type="button" class="btn btn-link btn-xs" style="color:blue;font-size:13px">在线人数:$numUsers[详细]</a>
最终显示的效果如图所示
2.获得所有在线用户信息
方法和上述类似,我们在controller中调用下面的函数
@RequestMapping(value = "/checkAllOnlineUsers",method = RequestMethod.GET,produces
="application/json;charset=UTF-8")
public @ResponseBody Map<String, Object> checkAllOnlineUsers(Model model,HttpServletRequest request,HttpServletResponse res)
Map<String, Object> map = new HashMap<>();
/* for( Object principal :sessionRegistry.getAllPrincipals())
userList.add(principal);
*/
map.put("users", sessionRegistry.getAllPrincipals());
return map;
插个题外话,这里之所以写的这么麻烦是因为用ajax发送的原因,不知道怎么优化,有知道的可以和博主一起探讨
我们同样使用
sessionRegistry.getAllPrincipals()
获得所有用户的entity,然后加入到list中,通过map形式返回给前端,前端解析的方式是这样的
function checkOnlineUsers()
$(allusers).html("");
$.ajax(
type : "GET",
url : "checkAllOnlineUsers.do",
data : ,
dataType: "json",
error: function()
,
success : function(msg)
<span style="color:#FF0000;">var allusersObj =msg.users;
$('#showAllUsers').modal('show');
for(i in allusersObj)
$(allusers).append(
"<strong>"+
allusersObj[i].username+", "+
"</strong>"
);</span>
);
红色的那段是在页面画,
<span style="color:#FF0000;">allusersObj[i].username</span>
就是我们的用户名啦~~
最终显示的效果如下所示
到这里,这个教程就实现啦~~很简单的
同时推荐个spring security相关的博客和翻译官方的开发文档 点击这里
以上是关于spring security 添加用户个数和所有用户功能的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Security 中基于某种所有权设置用户角色
Grails Spring Security UI、用户和角色管理访问
如何在 Spring WebFlux Security(Reactive Spring Security)配置中将多个用户角色添加到单个 pathMatcher/Route?