如何从Waffle身份验证中排除URL?

时间:2015-04-17 05:57:25

标签: java tomcat waffle

我有一个在Tomcat上运行的Java应用程序,并使用Waffle对Active Directory进行身份验证。我的要求是在没有任何身份验证的情况下使用此应用程序中托管的某些rest url。

配置设置如下。

context.xml(Tomcat)

<Valve className="waffle.apache.NegotiateAuthenticator" 
    principalFormat="fqn" roleFormat="both"/>
<Realm className="waffle.apache.WindowsRealm"/>

web.xml

 <security-role>
      <role-name>Everyone</role-name>
 </security-role>

   <security-constraint>
   <display-name>Waffle Security Constraint</display-name>
      <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>
        <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <role-name>Everyone</role-name>
      </auth-constraint>
    </security-constraint>

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

只需添加第二个不受保护的约束:

<security-constraint>
  <display-name>Login Page</display-name>
  <web-resource-collection>
    <web-resource-name>Unprotected Login Page</web-resource-name>
    <url-pattern>/login.jsp</url-pattern>
  </web-resource-collection>
</security-constraint>

我可能还需要在context.xml文件中使用混合身份验证:

<Context>
  <Valve className="waffle.apache.MixedAuthenticator" />
  <Realm className="waffle.apache.WindowsRealm" />
</Context>

但是,我们也可以使用waffle.apache.NegotiateAuthenticator

请参阅:https://github.com/dblock/waffle/blob/master/Docs/tomcat/TomcatMixedSingleSignOnAndFormAuthenticatorValve.md