第七课:Web 授权与认证

2016-11-02  本文已影响0人  MarkOut

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

参考资料:
http://blog.csdn.net/netdevgirl/article/details/51483273

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

httpSession是一个接口。提供一个方式去识别有多个请求的用户或者储存用户信息。

httpCookie是一个对象,用来表示一个 http cookie,该 cookie 带有服务器和用户代理之间的状态信息。广泛采用 Cookie 来创建有状态 (stateful) 会话。

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

先预处理,保证URL不会出现重定向循环。然后使用

LoginForm userData = (LoginForm) request.getSession().getAttribute("LOGGEDIN_USER");

得到现在储存的用户信息。如果userData为null,说明没有用户被认证,就返回false,然后回到登录页面。否则就返回true。

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

认证过程:

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

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

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

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

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

授权过程:

授权过程在shiro.ini中配置。例如如果在配置文件中这样写:

[users]
zs=123, role1,role2
ls=111, role1

[roles]
role1=user:create,user:update
role2=user:create,user:delete

那么,结果就是,zs拥有role1和role2的角色,因此他的权限有create, update和delete。而ls只拥有role1的权限,他就不能delete了。同时,zs可以访问role1和role2的URL,而ls只能访问role1的。

上一篇下一篇

猜你喜欢

热点阅读