1

我有一个关于 Tomcat 8.5 的网页,它使用 Waffle 1.9.0 来处理单点登录。在 localhost 上,它会自动让我登录,但由于我将它部署在远程服务器上,它偶尔会要求我提供凭据并告诉我该网站不安全。这是一个内部应用程序,我没有证书。

有没有办法将 waffle 配置为始终自动登录而不要求提供凭据?

这是我在 web.xml 中的过滤器:

 <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class>
    <init-param>
      <param-name>principalFormat</param-name>
      <param-value>fqn</param-value>
    </init-param>
    <init-param>
      <param-name>roleFormat</param-name>
      <param-value>both</param-value>
    </init-param>
    <init-param>
      <param-name>allowGuestLogin</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>securityFilterProviders</param-name>
      <param-value>
        waffle.servlet.spi.NegotiateSecurityFilterProvider
        waffle.servlet.spi.BasicSecurityFilterProvider
    </param-value>
    </init-param>
    <init-param>
      <param-name>waffle.servlet.spi.NegotiateSecurityFilterProvider/protocols</param-name>
      <param-value>
        NTLM
    </param-value>
    </init-param>
    <init-param>
      <param-name>waffle.servlet.spi.BasicSecurityFilterProvider/realm</param-name>
      <param-value>WaffleFilterDemo</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
4

1 回答 1

1

有两个原因,为什么你会看到这个问题。

  1. 客户端未进行正确的浏览器配置。
  2. 客户端和服务器不在同一个域中。

对于第一个问题,您需要进行适当的浏览器配置,以便将服务器添加为客户端中的受信任站点。有关更多详细信息,请点击此链接:

https://github.com/Waffle/waffle/blob/master/Docs/ConfiguringBrowsers.md

对于第二个问题,只需检查客户端和服务器是否在同一个域中。因为如果客户端和服务器不在同一个域中,服务器和客户端就无法相互识别。

于 2020-01-22T15:43:52.910 回答