Web 授权与认证

2016-11-01  本文已影响0人  OREOs

Web 授权与认证

实验内容

1. 简述 web.xml 中 listener, filter, servlet 的作用。

listener:

IntrospectorCleanupListener:主要负责处理由JavaBean Introspector使用而引起的缓冲泄露,

ContextLoaderListener:启动Web容器时,自动装配ApplicationContext的配置信息

filter:

SpringEncodingFilter:解决乱码问题,使用UTF-8编码

shiroFilter:配置Shiro过滤器,先让Shiro过滤系统接收到的请求

servlet:

SpringMVC:配置SringMVC核心分发器

2. 查阅 httpSession 和 httpCookie 的API,他们是接口?对象?

HttpSession是接口;HttpCookie是对象

3. 用自己的话,简述 “Check Authentication using Spring MVC and Handler Interceptor” 程序认证过程

如果输入的用户名和密码和设置的properties文件中的登录名和密码一致,就将用户相关信息封装到这个请求的session的LOGGEDIN_USER属性当中;之后这个用户再次登陆的时候,在Handler发出之前检测url信息,得到LOGGEDIN_USER属性中的LoginForm,进行了认证

4. 用案例简述 Shiro 认证与授权的过程。


根据Shiro教程中的案例,认证过程如下:

调用 Subject.login(token)进行登录,其会自动委托给 Security Manager,调用之前必须通过 SecurityUtils. setSecurityManager()设置

SecurityManager 负责真正的身份验证逻辑;它会委托给 Authenticator 进行身份验证;

Authenticator 才是真正的身份验证者,Shiro API 中核心的身份认证入口点,此处可以

自定义插入自己的实现;

Authenticator 可能会委托给相应的 AuthenticationStrategy 进行 Realm 身份验证;

Authenticator 会把相应的 token 传入 Realm,从 Realm 获取身份验证信息,如果没有返回/抛出异常表示身份验证失败了。此处可以配置多个 Realm,将按照相应的顺序及策略

进行访问。​

授权过程:

在shiro.ini中有设置用户有的角色和权限

可以自己写权限授予部分的实现;同样继承 AuthorizingRealm 抽象类,重载doGetAuthorizationInfo(),重写获取用户信息。

上一篇 下一篇

猜你喜欢

热点阅读