对JBoss web.xml的更改无效

我刚把它添加到我的JBOSS服务器上的web.xml中。 但它没有效果。 我仍然可以连接到不使用双向证书交换的端口。 有人有想法吗?

       Entire Application    /*          <!-- attribute in the  element of server.xml -->     CONFIDENTIAL         CLIENT-CERT   

更新

实际上我似乎在原始post中犯了一个错误。

web.xml确实阻止用户使用http(下面的端口C)连接到webservice。 但是,仍然允许用户连接到不强制用户自己进行身份validation的端口(端口B)。 我认为用户应该能够连接到端口A(它有clientAuth="true" ),但我不认为人们应该能够连接到端口B(它有clientAuth="false" )。

摘自server.xml

  <Connector port="" ... SSLEnabled="true" ... scheme="https" secure="true" clientAuth="true" keystoreFile="... .keystore" keystorePass="pword" truststoreFile="... .keystore" truststorePass="pword" sslProtocol="TLS"/> <Connector port="" ... SSLEnabled="true" ... scheme="https" secure="true" clientAuth="false" keystoreFile="... .keystore" keystorePass="pword" sslProtocol = "TLS" /> <Connector port="" ... /> 

我假设端口是HTTP,因为您已配置 CONFIDENTIAL 因此端口被阻止。

端口确实使用满足 CONFIDENTIAL SSL,因此它不会被阻止。

您缺少web.xml配置中的少数元素。 您的Web资源没有任何授权限制。 因此,当您从端口访问时,即使您没有通过身份validation,您仍然有权访问资源,因为您没有对您的资源进行任何身份validation限制。

您需要具有可以访问此应用程序的列表,其中包含

应该有告诉哪个可以访问,而其他人将受到限制。

上面配置的角色是Java EE角色。 需要将容器(JBoss)配置为将经过身份validation的角色映射到Java EE角色。

参考:

http://java.sun.com/javaee/5/docs/tutorial/doc/bncbe.html

http://community.jboss.org/wiki/RoleMappingLoginModule

更新了上面web.xml的副本

        Entire Application    /*    Authorized Roles ALL_AUTHENTICATED              CONFIDENTIAL         CLIENT-CERT    All authenticated users ALL_AUTHENTICATED  

在安全性方面,有两件事,即身份validation和授权。

身份validation:validation用户是主题并授予用户某些主体的行为; “你是谁。”

授权:validation用户是否被允许访问某个资源的行为; “你可以做什么。”

告诉如何validation用户或如何询问您的身份。 如果用户没有客户端证书,则他是未经身份validation的用户。 它没有告诉用户可以做什么。

但是,你可以做 。 如果您输入 ,那么只有那里提到的角色可以访问相应的Web资源。 如果资源不受限于certian角色,您仍然可以拥有未经过身份validation但有权访问某些资源的用户。

自从您进行了更改后,您是否重新加载了Web应用程序?