如何在tomcat中跳过http基本身份验证?

时间:2014-09-17 11:11:19

标签: java authentication centos tomcat7

我有一个登录页面的网址。我在 CentOS 中使用apache tomcat 。我也没有其他API来操纵数据。

我已经配置了基本的http身份验证,但是当我通过浏览器访问url时,它使用基本身份验证,我也必须提供登录ID /密码

当我通过一些其他客户端使用API​​时,我只想要这个http基本身份验证。如果我尝试从浏览器访问该URL,我想跳过此基本身份验证。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

我假设当您使用休息客户端时,您可以调用休息Web服务。

在您的web.xml中,您应该有一个带有security-constraint

的部分

在url-pattern的这一部分中,放置了您想要保护的其余页面。不要把那些你不想保护的页面放在那里。

如果你有类似的东西

<security-constraint>
         <display-name>SecurityConstraintExample</display-name>
        <web-resource-collection>
              <web-resource-name>WebResource</web-resource-name>
             <url-pattern>/*</url-pattern>
     </web-resource-collection>
        <auth-constraint>
              <role-name>loginUser</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
   </security-constraint>

将其更改为(假设路径为休息/网络服务的订单)

 <security-constraint>
         <display-name>SecurityConstraintExample</display-name>
        <web-resource-collection>
              <web-resource-name>WebResource</web-resource-name>
             <url-pattern>/rest/orders</url-pattern>
     </web-resource-collection>
        <auth-constraint>
              <role-name>loginUser</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
   </security-constraint>