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}
     
  • 相关阅读:
    Linux之网络ping(unknown host)故障及yum no more mirrors to try
    vim 中与编码有关的选项
    linux系统时间设定
    linux查看物理cpu的核数,个数,逻辑cpu的个数
    简单的api实现以及动态函数调用
    python2.7 urllib和urllib2
    四级菜单实现二
    四级菜单实现一
    url请求特殊字符转换
    tomcat配置
  • 原文地址:https://www.cnblogs.com/zhangrongfei/p/11238108.html
Copyright © 2011-2022 走看看