• 显示用户登录用户名


    使用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}
     
  • 相关阅读:
    STL:set/multiset用法详解
    STL:list用法详解
    STL:deque用法详解
    STL:vector容器用法详解
    Axure RP chrome插件显示已损坏或者无法安装的解决方法
    怎样知道自己机器的出口网关IP(即外部IP)
    [Selenium]怎样验证页面是否有无变化
    [Selenium]刷新页面 Refresh page
    [SoapUI]怎样获取隐藏元素的文本内容Get text of hidden element
    [SoapUI]怎样从应答报文中获取某个字段的值,然后用其改写某个变量
  • 原文地址:https://www.cnblogs.com/zhangrongfei/p/11238108.html
Copyright © 2020-2023  润新知