如何排除来自授权一个网址(How to exclude one url from authoriza

2019-07-20 09:28发布

我的web.xml中的样子:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>app</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Role</role-name>
    </auth-constraint>
</security-constraint>

这种保护授权,每一面,但我想排除/信息。 这可能吗 ?

Answer 1:

省略<auth-constraint>的元素<security-constraint>对于您不需要像认证资源:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>app</web-resource-name>
        <url-pattern>/info</url-pattern>
    </web-resource-collection>
    <!-- OMIT auth-constraint -->
</security-constraint>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>app</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Role</role-name>
    </auth-constraint>
</security-constraint>


Answer 2:

一种解决方案是使用像备用安全框架的Apache四郎代替的基于容器的安全性。 然后,它很容易从受保护的内容排除的资源。 使用四郎,你会放在WEB-INF/shiro.ini

[urls]
/info = anon
/**   = authc


Answer 3:

我不知道我是否可以得到你的权利! 用我有限的知识,我认为,为了实现安全保护的是使用一个或多个网络资源集合元素中声明的内容。 每一个web-resource-collection元素包含一个可选的一系列的url-pattern元素后跟一个可选的系列HTTP的方法元素的。 链接图案元素的值指定针对其中用于请求对应于试图访问受保护内容的请求URL必须匹配的URL的模式。 HTTP的方法元素值指定一种类型的HTTP请求,以允许。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Secure Content</web-resource-name>
        <url-pattern>/restricted/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>AuthorizedUser</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<!-- ... -->
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>The Restricted Zone</realm-name>
</login-config>
<!-- ... -->
<security-role>
    <description>The role required to access restricted content </description>
    <role-name>AuthorizedUser</role-name>
</security-role>

URL躺在Web应用程序的/受限制的路径下需要AuthorizedUser作用。



Answer 4:

我试着通过@ user517491但我的Tomcat 7的过滤器下/ https的所有流量解释上述方式,但前一个异常被忽略?

 <security-constraint>
    <web-resource-collection>
        <web-resource-name>app1</web-resource-name>
        <url-pattern>/webservice/*</url-pattern>
     </web-resource-collection> 
 </security-constraint>

 <security-constraint>
     <web-resource-collection>
        <web-resource-name>Protected Context</web-resource-name>
         <url-pattern>/*</url-pattern>
     </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint> 
</security-constraint>

我如何添加一个例外去与HTTP和所有其他流量以https ???



文章来源: How to exclude one url from authorization