分布式计算第八周实验:Web 授权与认证

Web 授权与认证

课程地址

实验内容

  1. 简述 web.xml 中 listener, filter, servlet 的作用。 listener: Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。 filter: 它使用户可以改变一个request和修改一个response。能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response servlet: 当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。
  2. 查阅 httpSession 和 httpCookie 的API,他们是接口?对象? 是接口 是对象
  3. 用自己的话,简述 “Check Authentication using Spring MVC and Handler Interceptor” 程序认证过程 访问所有路径都会被AuthenticationInterceptor拦截器拦截,进行preHandle预处理,如果session中没有用户登录记录,则重定向回路由/并返回false(其中需要避免一些地址的循环重定向)。 在路由/中显示的是login.jsp,提交其中的表单后,生成对象LoginForm并由model.addAttribute("loginAttribute", loginForm)添加到模型的属性中。 接着由控制器中的路由映射@RequestMapping(value = "/login.do", method = RequestMethod.POST)调用login方法,对用户名密码进行审核,如果与设置中的用户名密码相同,则把表单加入session中,并重定向回欢迎界面,否则登录失败,重定向回/login.failed
  4. 用案例简述 Shiro 认证与授权的过程。 首先调用Subject.login(token)进行登录,其会自动委托给SecurityManager,调用之前必须通过SecurityUtils.setSecurityManager()设置; SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证; Authenticator才是真正的身份验证者,ShiroAPI中核心的身份认证入口点,此处可以自定义插入自己的实现; Authenticator可能会委托给相应的AuthenticationStrategy进行Realm身份验证; Authenticator会把相应的token传入Realm,从Realm获取身份验证信息,如果没有返回/抛出异常表示身份验证失败了。此处可以配置多个Realm,将按照相应的顺序及策略进行访问。
经验分享 程序员 微信小程序 职场和发展