shiro获取session用户_我配好了shiro,登录成功后,怎么在jsp页面获得用户信息
时间: 2023-08-12 21:51:47 浏览: 85
在jsp页面中,可以通过Shiro提供的Subject对象获取当前用户的信息。具体可以通过以下代码实现:
```jsp
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<shiro:principal property="username"/>
```
其中,`<shiro:principal>` 标签可以获取当前用户的主要身份信息,例如用户名等。在 `property` 属性中,我们可以指定要获取的用户信息的属性名称。在上面的例子中,我们获取了当前用户的用户名信息。
除了 `principal` 属性,还有其他属性可以用来获取不同类型的用户信息,例如 `roles` 属性可以获取当前用户的角色信息,`permissions` 属性可以获取当前用户的权限信息。具体可以参考Shiro的文档。
相关问题
shiro获取session用户_shiro 获取请求头中的 sessionId
可以使用 Shiro 的 Subject 对象获取当前用户的 Session,具体代码如下:
```java
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
Object sessionId = session.getId();
```
如果你想获取请求头中的 sessionId,可以使用 HttpServletRequest 对象获取,具体代码如下:
```java
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String sessionId = request.getHeader("sessionId");
```
然后你可以将 sessionId 作为参数传递给 Shiro 的 SessionManager,从而获取对应的用户 Session。
shiro踢掉登录用户jsp获取不到属性
在使用Shiro进行用户认证和授权时,如果需要在JSP页面中获取用户信息,可以使用Shiro提供的标签库进行获取。在用户被踢出登录的情况下,可能会导致之前存储在会话(Session)中的用户信息被清除,因此在JSP页面获取不到用户属性。
解决方法是,在用户被踢出登录的时候,在Shiro的过滤器中进行处理,清除会话(Session)中的用户信息。可以使用如下代码:
```java
// 获取当前会话
Subject subject = SecurityUtils.getSubject();
Session session = subject.getSession();
// 清除会话中的用户信息
session.removeAttribute("user");
```
这样,在用户被踢出登录的时候,会话(Session)中的用户信息就会被清除,即使在JSP页面中获取不到用户属性,也不会存在安全问题。