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

Web 授权与认证

课程地址

http://ss.sysu.edu.cn/~pml/dct/8_web_auth.html

实验内容

  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” 程序认证过程

    1. 访问所有路径都会被AuthenticationInterceptor拦截器拦截,进行preHandle预处理,如果session中没有用户登录记录,则重定向回路由/并返回false(其中需要避免一些地址的循环重定向)。
    2. 在路由/中显示的是login.jsp,提交其中的表单后,生成对象LoginForm并由model.addAttribute("loginAttribute", loginForm)添加到模型的属性中。
    3. 接着由控制器中的路由映射@RequestMapping(value = "/login.do", method = RequestMethod.POST)调用login方法,对用户名密码进行审核,如果与设置中的用户名密码相同,则把表单加入session中,并重定向回欢迎界面,否则登录失败,重定向回/login.failed
  4. 用案例简述 Shiro 认证与授权的过程。

    这里写图片描述

    1. 首先调用Subject.login(token)进行登录,其会自动委托给SecurityManager,调用之前必须通过SecurityUtils.setSecurityManager()设置;
    2. SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证;
    3. Authenticator才是真正的身份验证者,ShiroAPI中核心的身份认证入口点,此处可以自定义插入自己的实现;
    4. Authenticator可能会委托给相应的AuthenticationStrategy进行Realm身份验证;
    5. Authenticator会把相应的token传入Realm,从Realm获取身份验证信息,如果没有返回/抛出异常表示身份验证失败了。此处可以配置多个Realm,将按照相应的顺序及策略进行访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值