b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ldap认证_ldap认证服务器_ldap认证服务器搭建(2)

电脑杂谈  发布时间:2017-02-23 04:55:02  来源:网络整理

有些目录我们希望不限制访问的权限,比如 css、images、js等。

    <s:http pattern="/css/**" security="none"/>
    <s:http pattern="/images/**" security="none"/>
    <s:http pattern="/js/**" security="none"/>

上面的配置和以前的 <s:intercept-url pattern='/css/**' filters='none'/> 作用是一样的,但从 spring security 3 开始不再支持上面的写法——这是很多开源项目让人无语的地方——不在意兼容性。

其中 ** 代表可以跨越目录。

下面这一部分配置是对 http 的过滤:

<s:http 
        auto-config="true" 
        use-expressions="true" 
        entry-point-ref="accessDeniedHandler" >
    <s:intercept-url pattern="/service/**" access="hasAnyRole('USER')" />
    <s:intercept-url pattern="/home/**" access="hasAnyRole('USER')" />

    <s:access-denied-handler ref="accessDeniedHandler"/>
    <s:form-login 
        login-page="/login"
        default-target-url="/home" 
        authentication-failure-url="/login_fail" />
    <s:logout logout-success-url="/login" />
    <s:custom-filter ref="afterLoginFilter" after="FORM_LOGIN_FILTER" />
</s:http>

上面 <s:intercept-url …… /> 匹配过滤的路径。hasAnyRole 用于匹配一个使用GrantedAuthority 的角色列表(这里说的角色是 spring security 里的概念,不是我们定义的业务上的角色)。用户匹配其中的任何一个均可放行。

entry-point-ref 为用户第一次访问受保护的url时的处理程序。这个程序需要实现 AuthenticationEntryPoint 接口。我们可以在这里让没登录的用户跳转到登录页面去。

access-denied-handler是在拒绝用户访问(用户没有访问权限)的时候处理的程序。这个程序需要实现 AccessDeniedHandler 接口。我们可以在这里让用户跳转到 403 页面去。

form-login 这部分是登录控制

<s:custom-filter ref="afterLoginFilter" …… /> 这部分定义了一个 filter ,在 FORM_LOGIN_FILTER 之后。加这个的原因是这样的。我希望在登录后能将一些内容放在 session 中,但使用 LDAP 的 authentication provider 时无法在我自己实现的 authoritiesPopulator(这个后面会说到)中得到 session 。我觉得一种方法可能是用自己定义的 UserDetails 代替 spring security 中的实现,但由于时间关系没有太研究,如果哪位看官有经验可以一起讨论。另一种方法就是我现在这样,在登录后拦截一下,然后从 SecurityContextHolder.getContext().getAuthentication().getName() 中把用户输入的登录名拿出来,再到捞出我想要的信息,放在了 session 里。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33983-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...