页面获取Spring Security登录用户

页面获取Spring Security登录用户

1.在session中取得spring security的登录用户名如下:
${session.SPRING_SECURITY_CONTEXT.authentication.principal.username}
spring security 把SPRING_SECURITY_CONTEXT 放入了session 没有直接把username 放进去。下面一段代码主要描述的是session中的存的变量,

存跳转时候的URLsession
{SPRING_SECURITY_SAVED_REQUEST_KEY=SavedRequest[http://localhost:8080/AVerPortal/resourceAction/resourceIndex.action]}
存的是登录成功时候session中存的信息:

session {SPRING_SECURITY_C[email protected]87b16984: Authentication: or[email protected]87b16984: Principal: [email protected]: Username: test; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Password: [PROTECTED]; Authenticated: true; Details: [email protected]: RemoteIpAddress: 127.0.0.1; SessionId: AE56E8925195DFF4C50ABD384574CCEA; Granted Authorities: ROLE_ADMIN Assertion: [email protected] Credentials (Service/Proxy Ticket): ST-3-1lX3acgZ6HNgmhvjXuxB-cas, userId=2, userName=test}

2.在页面端用tag获取:
<%@ taglib prefix=‘security‘ uri=‘http://www.springframework.org/security/tags‘%>
<security:authentication property="principal.username"></security:authentication>
或者
<security:authorize ifAllGranted="ROLE_ADMIN">
<security:authentication property="principal.username"></security:authentication>
</security:authorize>
或者取session中的值:

${session.SPRING_SECURITY_CONTEXT.authentication.principal.username}
3.在后台获取

UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext()
.getAuthentication()
.getPrincipal();

userDetails.getUsername()

如果想要获取更多的信息:得扩展userDetails的默认实现类user类和UserDetailsService接口

由于springsecurity是把整个user信息放入session中的即:session.SPRING_SECURITY_CONTEXT.authentication.principal。这个就是代表着user对象。

http://blog.csdn.net/zmx729618/article/details/51914836

6.1 th:text属性
可对表达式或变量求值,并将结果显示在其被包含的 html 标签体内替换原有html文本
文本连接:用“+”符号,若是变量表达式也可以用“|”符号
6.2 th:utext属性
e.g.
若home.welcome=Welcome to our <b>fantastic</b> grocery store!
用<p th:text="#{home.welcome}"></p>解析结果为:
<p>Welcome to our <b>fantastic</b> grocery store!</p>
解决方案
<p th:utext="#{home.welcome}"></p>即可。
等效于<p>Welcome to our <b>fantastic</b> grocery store!</p>

<div>
        <ol>
        <li>文本:
            <ol>
                <li>‘xxxx‘:Now you are looking at a <span th:text="‘working web application‘">template file</span>.</li>
                <li>不能有空格、逗号:Now you are looking at a <span th:text="workingwebapplication">template file</span>.</li>
            </ol>
        </li>
        <li>数字:
            <ol>
                <li>The year is <span th:text="2014">1492</span>.</li>
                <li>In two years, it will be <span th:text="2014 + 2">1494</span>.</li>
            </ol>
        </li>
        <li>布尔值(true/false):
            <ol>
                <li>获取对象属性:<span th:if="${user.isAdmin} == false"> ...</span></li>
                <li>获取对象的方法(public):<span th:if="${user.isAdmin()} == false"> ...</span></li>
            </ol>
        </li>
        <li>null:<span th:if="${user.isAdmin()} == null"> ...</span></li>
        <li>连接:
            <ol>
                <li>连接符+:<span th:text="‘The name of the user is ‘ + ${user.userName}"></span></li>
                <li>连接符|:<span th:text="|Welcome to our application, ${user.userName}!|"></span></li>
                <li><span th:text="‘Welcome to our application, ‘ + ${user.userName} + ‘!‘"></span></li>
                <li><span th:text="${onevar} + ‘ ‘ + |${twovar}, ${threevar}|"></span></li>
                <li><span th:utext="#{home.welcome}">Welcome to our grocery store!</span></li>
            </ol>
        </li>
        <li>th:utext:
            <ol>
                <li>th:text:<span th:text="${textWelcome}">textWelcome!</span></li>
                <li>th:utext:<span th:utext="${textWelcome}">textWelcome!</span></li>
            </ol>
        </li>
        </ol>
    </div>  

http://blog.csdn.net/sun_jy2011/article/details/40215101

时间: 2024-10-14 03:58:41

页面获取Spring Security登录用户的相关文章

spring security 判断用户是否登录 只要登录就可以访问资源

有些情况,只要用户登录就可以访问某些资源,而不需要具体要求用户拥有哪些权限,这时候可以使用IS_AUTHENTICATED_FULLY,配置如下所示: <http auto-config='true'> <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" /> <intercept-url pattern="/**" access="IS_AUTH

spring security 控制用户信息用户加密 缓存用户信息

1. MD5加密 任何一个正式的企业应用中,都不会在数据库中使用明文来保存密码的,我们在之前的章节中都是为了方便起见没有对数据库中的用户密码进行加密,这在实际应用中是极为幼稚的做法.可以想象一下,只要有人进入数据库就可以看到所有人的密码,这是一件多么恐怖的事情,为此我们至少要对密码进行加密,这样即使数据库被攻破,也可以保证用户密码的安全. 最常用的方法是使用MD5算法对密码进行摘要加密,这是一种单项加密手段,无法通过加密后的结果反推回原来的密码明文. 首先我们要把数据库中原来保存的密码使用MD5

02 spring security 自定义用户认证流程

1. 自定义登录页面 (1)首先在static目录下面创建login.html       注意: springboot项目默认可以访问resources/resources, resources/staic, resources/public目录下面的静态文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录页

spring security不同用户权限的设置

项目右键-MyEclipse-facet-install spring facet- finish,spring security的jar包就加入到项目中了.(spring+hibernate环境也已经配置好了) 配置spring security: web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLS

基于Spring LDAP和Spring Security的用户认证和权限控制Web实现

利用LDAP服务,使用Spring LDAP,Spring Security实现Web项目用户认证和简单的权限控制.实现多系统账号统一. 1.基于EHR的LDAP用户信息 LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.LDAP目录以树状的层次结构来存储数据.如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌LDAP目录树这个概念了.就象DNS的主机名那样,LDAP目录记录的标识名(Dis

spring security登录人数限制并且同一个账号可以踢掉前一个用户配置文件

一.限制用户登录数和session自动托管 1.maximumSessions:限制登录人数 2.exceptionIfMaximumExceeded: 为true同一账户只能登录一次, 为false同一账户可以登录多次如果配置了org.springframework.security.web.session.ConcurrentSessionFilter则会踢出前一个登录的session 3.sessionRegistry配置session管理 4.concurrentSessionFilte

Spring Security自定义用户认证

具体代码地址 https://gitee.com/chuzhuyong/HandleSafer 自定义用户认证 通过自定义WebSecurityConfigurerAdapter类型的Bean组件,并重写configure(Authentication ManagerBuilder auth)方法, 可以实现自定义用户认证. 一.内存身份认证   In-Memory Authentication(内存身份认证)是最简单的身份认证方式,主要用于Security安全认证体验和测试 1.自定义WebS

spring security 使用 application/json 接收数据

spring security 使用 application/json 接收数据 不了解 security 的请看 security 的简单使用 https://blog.51cto.com/5013162/2404946 在使用 spring security 登录用户的时候 发现使用 application/josn 后台不能获取到数据看 UsernamePasswordAuthenticationFilter 源码发现 //获取密码 protected String obtainPassw

spring security使用自定义登录界面后,不能返回到之前的请求界面的问题

昨天因为集成spring security oauth2,所以对之前spring security的配置进行了一些修改,然后就导致登录后不能正确跳转回被拦截的页面,而是返回到localhost根目录. 开始以为是被oauth2拦截了导致出了问题,但是security的拦截器是优先起作用的,所以这不可能. 最后实在没法只有打断点调试找毛病(下图为spring security登录后重定向至拦截前访问的url的实现原理流程) 图片是在这里看到的https://blog.csdn.net/zy_coo