我在我的应用程序中实现了单点登录。现在我得到了我不想在单点登录时使用的 URL(例如一个不受保护的网络服务)。我该怎么做?是否有支持的 SPNEGO init 参数?
<display-name>myapp</display-name>
<welcome-file-list>
<welcome-file>/faces/index.xhtml</welcome-file>
</welcome-file-list>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/faces/error.xhtml</location>
</error-page>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>prototype</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
现在我想配置这样的东西:
<filter>
<filter-name>SpnegoHttpFilter</filter-name>
<filter-class>net.sourceforge.spnego.SpnegoHttpFilter</filter-class>
[...]
<init-param>
<param-name>excludePattern</param-name>
<param-value>.*rest.*</param-value>
</init-param>
</filter>
已编辑:09/11/2018 01:35 PM
在 SPNEGO 源代码中,在类 SpnegoHttpFilter.java 中,我找到了我正在寻找的内容(包括评论):
@Override
public void doFilter(final ServletRequest request, final ServletResponse response
, final FilterChain chain) throws IOException, ServletException {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
final SpnegoHttpServletResponse spnegoResponse = new SpnegoHttpServletResponse(
(HttpServletResponse) response);
但现在我的问题是,这个函数如何检索目录列表以跳过身份验证?
相关分类