Glassfish Web服务授权

时间:2012-01-30 14:58:19

标签: java web-services security glassfish

我使用部署到Glassfish 3.1.1的JAX-WS设置了一个Web服务。我已设法使用客户端证书(相互身份验证)设置SSL,但我无法弄清楚如何进行适当的授权。我喜欢为只读访问设置角色,用于更新和删除数据。

Java EE 6教程和glassfish安全指南声明,无法将用户添加到证书领域Java EE Tutorial。那么在使用相互身份验证时授权用户的正确方法是什么?我必须在顶部使用用户名和密码吗?

1 个答案:

答案 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." );
        }
    }
}