美文网首页
第七课:Web 授权与认证

第七课:Web 授权与认证

作者: MarkOut | 来源:发表于2016-11-02 00:54 被阅读0次

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

    • servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。

    • filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。

    • listener:监听器,从字面上可以看出listener主要用来监听只用。通过listener可以监听web服务器中某一个执行动作,并根据其要求作出相应的响应。

    参考资料:
    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的。

    相关文章

      网友评论

          本文标题:第七课:Web 授权与认证

          本文链接:https://www.haomeiwen.com/subject/qkxvuttx.html