对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,因为您已配置
因此端口
被阻止。
端口确实使用满足
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应用程序?