Shiro框架中,Session管理是一个重要的功能。以下是一个简单的Shiro JSP Session实例,展示了如何使用Shiro来创建和管理用户会话。

确保你的项目中已经添加了Shiro依赖。这里我们假设你使用的是Maven。

shiro jsp session实例,ShiroJSPSession实例  第1张

```xml

org.apache.shiro

shiro-web

1.4.0

```

接下来,创建一个简单的Shiro配置文件`shiro.ini`,位于项目的`src/main/resources`目录下。

```ini

[main]

配置Shiro的SecurityManager

securityManager.realms = myRealm

配置Shiro的过滤器链

web.filterChain = /login.jsp = anon /logout = logout / = authc

配置会话管理

sessionManager.sessionValidationInterval = 60000

sessionManager.globalSessionTimeout = 1800000

sessionManager.sessionValidationSchedulerEnabled = true

sessionManager.sessionIdCookieEnabled = true

sessionManager.sessionIdCookie.name = JSESSIONID

sessionManager.sessionIdCookie.httpOnly = true

sessionManager.sessionIdCookie.path = /

```

然后,创建一个自定义的Realm,继承自`AuthorizingRealm`。

```java

import org.apache.shiro.authc.AuthenticationException;

import org.apache.shiro.authc.AuthenticationInfo;

import org.apache.shiro.authc.AuthenticationToken;

import org.apache.shiro.authc.SimpleAuthenticationInfo;

import org.apache.shiro.authz.AuthorizationInfo;

import org.apache.shiro.authz.SimpleAuthorizationInfo;

import org.apache.shiro.realm.AuthorizingRealm;

import org.apache.shiro.subject.PrincipalCollection;

public class MyRealm extends AuthorizingRealm {

@Override

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {

String username = (String) token.getPrincipal();

String password = new String((char[]) token.getCredentials());

// 这里可以添加你的用户验证逻辑

if ("