首页 > 代码库 > 分布式计算(七)——Web 授权与认证

分布式计算(七)——Web 授权与认证

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

listener:监听 web 服务器中的执行动作,并根据要求作出相应的

响应;

filter:用于对

用户的请求进行预处理和对服务器的响应进行后处理

servlet:运行在服务端的用于动态生成 web 页面的应用程序

 

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

javax.servlet.http Interface HttpSession 是接口

javax.servlet.http Class Cookie 是对象

 

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

① 拦 截 器 AuthenticationInterceptor 拦 截 到 该 请 求 , 调 yongpreHandle 函数判断请求的 URI 是否为 "/sample-interc/"、"/sample-interc/login.do" 或 "/sample-interc/login.failed"。如果不是,判断用户是否已经登录,是则函数返回 true,否则函数返回false

② 接着在控制器中判断用户输入的用户名和密码是否有效,如果有效则设置 session 并重定向到 welcome 页面,否则重定向到login.failed 页面

 

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

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

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

③Authenticator才是真正的身份验证者,ShiroAPI中核心的身份认证入口点,此处可以自定义插入自己的实现;

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

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

分布式计算(七)——Web 授权与认证