我有一个由 RESTFul Web 服务和一些网页组成的 Web 应用程序。网页使用 JQuery getJSON 从 Web 服务检索数据并将其显示在页面中。在没有任何安全限制的情况下部署应用程序时,一切都按预期工作。
当我对 Web 服务资源和网页应用安全约束时,我被重定向到登录页面。我能够成功登录,并被重定向到请求的原始 url,但是当处理 getJSON 代码行时,浏览器会重定向到 Web 服务资源 url。数据检索成功,但我需要停止此重定向并停留在最初请求的 url。
编辑:这是来自 web.xml 的安全配置...
<web-resource-collection>
<web-resource-name>WebPage</web-resource-name>
<description/>
<url-pattern>/index.html</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>WebService</web-resource-name>
<description/>
<url-pattern>/webresources/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
</form-login-config>
</login-config>
<security-role>
<description/>
<role-name>user</role-name>
</security-role>
任何建议,将不胜感激。
更新:如果从 Web 服务资源中删除了安全约束,那么一切都会按预期进行,并且不会发生浏览器重定向,因此问题似乎与保护 Web 服务有关。