我使用部署到Glassfish 3.1.1的JAX-WS设置了一个Web服务。我已设法使用客户端证书(相互身份验证)设置SSL,但我无法弄清楚如何进行适当的授权。我喜欢为只读访问设置角色,用于更新和删除数据。
Java EE 6教程和glassfish安全指南声明,无法将用户添加到证书领域Java EE Tutorial。那么在使用相互身份验证时授权用户的正确方法是什么?我必须在顶部使用用户名和密码吗?
答案 0 :(得分:1)
查看http://docs.oracle.com/cd/E18930_01/html/821-2435/ggktf.html#gksdc
public class CertificateLM extends AppservCertificateLoginModule
{
protected void authenticateUser() throws LoginException
{
// get the DN from the X500Principal.
String dname = getX500Principal().getName();
// retrieve the groups of the DN from an external source, e.g. from LDAP
String[] groups = getGroupsFromLDAP( dname );
if( groups != null ) {
commitUserAuthentication( groups );
}
else {
throw new LoginException( "DN is unknown." );
}
}
}