我有一个登录页面的网址。我在 CentOS 中使用apache tomcat 。我也没有其他API来操纵数据。
我已经配置了基本的http身份验证,但是当我通过浏览器访问url时,它使用基本身份验证,我也必须提供登录ID /密码。
当我通过一些其他客户端使用API时,我只想要这个http基本身份验证。如果我尝试从浏览器访问该URL,我想跳过此基本身份验证。
有没有办法实现这个目标?
答案 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>