shiro中是否认证,和是否授权的不同现象以及shiro的自定义代码构成部分

 

shiro的自定义代码构成部分

 

自定义的认证过滤器

自定义的权限过滤器

加载所有的资源-权限信息

加载登录用户自己的资源,角色信息

更新重行加载权限

共享session管理器--session监听

在shiro的session用redis实现之后,可以直接拿到这个session,然后在里面设置需要传递的变量,在服务器切换的时候都可以共享。

不必另外包装一个httpsession然后这个包装的里面用redis存(shiro实现共享session即可,不必如此)。

 

 

// 当验证都通过后,把用户信息放在session里 ,这里是已经实现了session共享的情况下(自定义shiro sessionmanager)

        Session session = SecurityUtils.getSubject().getSession();

        session.setAttribute("userSession", user);

        session.setAttribute("userSessionId", user.getId());

 

剩余的就是在配置文件中配置

 

 

shiro中是否认证,和是否授权的不同现象

 

没有认证---退出

 

 

 

 

 

 

没有权限返回空,截断请求(可以对终端时候的页面信息做一些配置控制显示)-----debug在这个方法就可看到这个代码在框架源码中的调用链

 

PathMatchingFilter---- return this.isFilterChainContinued(request, response, path, config);----- return this.onPreHandle(request, response, pathConfig);

 

 

  public boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {

        return this.isAccessAllowed(request, response, mappedValue) || this.onAccessDenied(request, response, mappedValue);

    }

 

 

url过滤器会根据有没有权限决定是否继续请求----可以对终端时候的页面信息做一些配置控制显示

public class RoleAuthorizationFilter extends AuthorizationFilter{

 

 public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)

          throws Excepti

            {

    }

 

}

 

 

 


shiro中是否认证,和是否授权的不同现象以及shiro的自定义代码构成部分