Shiro 提供了完整的企业级会话管理功能,不管JavaSE 还是 JavaEE 环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对 Web 的透明支持、SSO 单点登录的支持等特性。即直接使用 Shiro 的会话管理可以直接替换如 Web 容器的会话管理。 一、基础组件 1、会话管理器 会话...
"XMLHttpRequest".equalsIgnoreCase(WebUtils.toHttp(response).getHeader("X-Requested-With")) || request.getParameter("ajax") == null ){ this.saveRequestAndRedirectToLogin(request, response); }else{*/ HttpServletResponse res = WebUtils.toHttp(response); res.setHeader("sessionstatus","timeout")...
自定义的 CNInvalidRequestFilter,把 InvalidRequestFilter 的代码复制了过来,只修改其中一小部分,在不影响原始功能的情况下,让中文字符的请求路径通过检查。 packagetop.emanjusaka.filter;importorg.apache.shiro.web.filter.AccessControlFilter;importorg.apache.shiro.web.util.WebUtils;importorg.springframework.stereot...
如果你需要在任何时候获得 WebEnvironment 实例,你可以调用 WebUtils.getRequiredWebEnvironment(ServletContext)。 (2) ShiroFilter 将使用此 WebEnvironment 对任何过滤的请求执行所有必要的安全操作。 (3) 最后,filter-mapping 的定义确保了所有的请求被 ShiroFilter 过滤,建议大多数 Web 应用程序使用以确保...
{ String sessionId = WebUtils.toHttp(request).getHeader(TOKEN); //如果sessionId不为空,就调用自定义的逻辑,如果为空就调用父类的方法 if(sessionId!=null){ //调用shiro内部的校验,检测sessionId是否存在,是否过期 request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE, ShiroHttpServlet...
WebEnvironment env = WebUtils.getRequiredWebEnvironment(getServletContext()); setSecurityManager(env.getWebSecurityManager()); FilterChainResolver resolver = env.getFilterChainResolver(); if (resolver != null) { setFilterChainResolver(resolver); ...
WebUtils.getRequiredWebEnvironment(servletContext); 上面的配置中用到了两个参数(事实上EnvironmentLoader也只有这两个参数)。 shiroEnvironmentClass shiroConfigLocations shiroEnvironmentClass用于指定使用的WebEnvironment实现类,缺省值为org.apache.shiro.web.env.IniWebEnvironment。
if (!WebUtils.isHttp(context)) { log.debug("SessionContext argument is not HTTP compatible or does not have an HTTP request/response pair. No session ID cookie will be set."); } else { HttpServletRequest request = WebUtils.getHttpRequest(context); ...
WebUtils.getCleanParam(request, captchaParam)是 shiro 给我们提供的封装,其实就是request.getParameter(paramName)的一个封装罢了,我们可以通过它来获取前台输入的参数。 重写UsernamePasswordToken类 public class UsernamePasswordToken extends org.apache.shiro.authc.UsernamePasswordToken{ ...
import org.apache.shiro.web.util.WebUtils; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import java.io.Serializable; /** * @Description 自定义获取Token * @Author youcong */public class ShiroSessionManager extends DefaultWebSessionManager { ...