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,将按照相应的顺序及策略进行访问。
原文:http://www.cnblogs.com/blueblueblue/p/6096116.html