• 显示用户登录用户名


    使用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}
     
  • 相关阅读:
    Android 权限表
    自己动手写shell命令之write
    libgdx 1.4.1公布
    【JUnit4.10源码分析】5.2 Rule
    TCP协议具体解释(上)
    关于 二维码 与 NFC 之间的出身贫贱说
    Effective C++ Item 42 了解 typename 的双重意义
    C++第12周(春)项目2
    HDU 2256 Problem of Precision(矩阵高速幂)
    【OC语法快览】二、存取方法
  • 原文地址:https://www.cnblogs.com/zhangrongfei/p/11238108.html
Copyright © 2020-2023  润新知