zoukankan      html  css  js  c++  java
  • 显示用户登录用户名

    使用SpringSecurity进行操作 产生一个上下文栈 SecurityContext ----》自动存储到session域中 通过SecurityContext l可以获得认证对象 Authentication --->封装principal(主角)属性 principal就是当前用户对象User ----->包含用户相关信息:SecurityContext-----》 Authentication---》User----->username

    一、编写显示用户登录用户名的controller控制器(两种方法)

    (1)第一种较麻烦

    (2)第二种较简洁

    //显示用户名
    @Controller
    public class ShowUserNameController {
    @RequestMapping("/showUserName")
    public void showUserName(HttpServletRequest request){
         //(1)第一种
    //获得session对象
    HttpSession session = request.getSession();
    //session域中获得登录信息,从而获得酥油的属性名
    Enumeration attributeNames = session.getAttributeNames();
    while (attributeNames.hasMoreElements()){
    //打印获得储存用户登录的session名称SPRING_SECURITY_CONTEXT
    System.out.println(attributeNames.nextElement());
    }
    //SPRING_SECURITY_CONTEXT就是存储用户登录信息的seesion 名称
    Object spring_security_context = session.getAttribute("SPRING_SECURITY_CONTEXT");
    // 获取的是安全框架上下文对象
    SecurityContext securityContext = (SecurityContext) spring_security_context;
    // 获得认证信息
    Authentication authentication = securityContext.getAuthentication();
    //用户详情
    Object principal = authentication.getPrincipal();
    //获取用户名
    User user = (User) principal;
    user.getUsername();

    //(2)获取用户名的第二种方式
    SecurityContext context = SecurityContextHolder.getContext();
    //第二种方式省略了(// 获取的是安全框架上下文对象securityContext对象之前的所有代码),用SecurityContextHolder.getContext();代替则:
            // (securityContext=context)所以可以代替。然后剩下的获得用户认证信息代码与第一种完全一致,此处省略,编写完毕后编写web文件
        }
    二、编写web文件获取显示用户名
    <%--在显示登录的用户名的地方,用el表达是书写取值--%>
    ${sessionScope.SPRING_SECURITY_CONTEXT.authentication.principal.username}
     
  • 相关阅读:
    LinkedList源码解析
    HashMap源码解析
    HashMap和Hashtable区别
    arcgis api for js 之网络分析服务发布
    arcgis api for js 之发布要素服务
    arcis api for js 值 3.17 本地部署
    ArcGIS 产品体系结构
    layui select下拉框选项不显示
    windows10企业版2016长期服务版激活
    PHP常见的输出语句
  • 原文地址:https://www.cnblogs.com/zhangrongfei/p/11238108.html
Copyright © 2011-2022 走看看