Autenticação de Web Services com JDBRealm

0 respostas
phfaustino

Tenho um Web Service e estou usando JDBCRealm como forma de autenticação, porém estou com algumas dúvidas/problemas.

Por exemplo:
@WebService(targetNamespace = "NameSpaceExample")
public class MyWS {

    @WebMethod
    @RolesAllowed("role1")
    public String sayHello(String name) {
        return "Hello " + name;
    }

    @WebMethod
    @RolesAllowed("role2")
    public String sayBye(String name) {
        return "Bye " + name;
    }
Agora o mapeamento nos xml's: sun-web.xml
<security-role-mapping>
        <role-name>role1</role-name>
        <group-name>group1</group-name>
    </security-role-mapping>

    <security-role-mapping>
        <role-name>role2</role-name>
        <group-name>group2</group-name>
    </security-role-mapping>
web.xml
<security-constraint>
        <display-name>Authorization</display-name>
        <web-resource-collection>
            <web-resource-name>Authorization</web-resource-name>
            <description/>
            <url-pattern>/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
            <http-method>HEAD</http-method>
            <http-method>POST</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
            <http-method>DELETE</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>role1</role-name>
            <role-name>role2</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>postgres-realm</realm-name>
    </login-config>

Ok, agora no banco de dados, tenho cadastrado 2 usuários:
User1 - pertence ao grupo group1
User2 - pertence ao grupo group2

No entando se eu tento acessar o método sayBye que possui @RolesAllowed("role1") com o usuário User2 eu consigo obter a resposta do método normalmente,
sendo que o User2 pertence ao group2 e não deveria acessar um método que está liberado apenas para usuários do group1.
Alguém pode me explicar corretamente como funciona ?
Obrigado

Criado 2 de fevereiro de 2010
Respostas 0
Participantes 1