Invocar EJB remoto com JAAS no GlassFish 3.1.2

Boa tarde a todos…

Já li muitos fórom a fim de tentar resolver meu problema. Se alguém souber me disser qual o problema, fico grato.

Estou usando o GlassFish 3.1.2, e criei um JDBCRealm para autenticação. No meu EJB adicionei a seguinte anotação:

Em meu EAR onde encontra-se meu EJB adicionei ao diretório META-INF o arquivo glassfish-application.xml, com o seguinte conteudo:

[code]<?xml version="1.0" encoding="UTF-8"?>

default [/code]

O deploi é feito sem erro nenhum.

No client tenho o arquivo auth.conf com o seguinte conteúdo:

default { com.sun.enterprise.security.auth.login.ClientPasswordLoginModule required debug=false; };

E finalmente tenho o meu loockup no cliente:

[code]Properties properties = new Properties();

    System.setProperty("java.security.auth.login.config", ContextHelper.class.getResource("/auth.conf").getPath());

    properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
    properties.setProperty(Context.URL_PKG_PREFIXES, "com.sun.enterprise.naming");
    properties.setProperty(Context.STATE_FACTORIES, "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    properties.setProperty(Context.PROVIDER_URL, "localhost:3700");

    ProgrammaticLogin programmaticLogin = new ProgrammaticLogin();
    programmaticLogin.login("usuario","senha".toCharArray());

    InitialContext ctx = new InitialContext(properties);

    ctx.lookup("java:global/appName/moduleName/beanName!interfaceName");[/code]

Ao fazer o lookup tenho erro tanto no client como no servidor.

Client:

15:32:40,756 INFO ContextHelper:21 - connect url=null:null [Root exception is java.rmi.AccessException: CORBA NO_PERMISSION 0 No; nested exception is: org.omg.CORBA.NO_PERMISSION: ----------BEGIN server-side stack trace----------

Server (apenas isso):

Será que alguém tem alguma idéia do que possa estar errado?

Agradeço a todos que se interessarem pelo assunto.

[color=red]obs: se remover a anotação @RolesAllowed({“S”, “A”, “U”}) funciona corretamente.[/color]

O usuário “usuario” não faz parte de nenhum dos grupos “S”, “A” ou “U”.

Faz sim, na verdade estou migrando para glassfish, a aplicação já rodou no jBoss 5 e no jBoss 7. A não ser que eu tenha configurado errado meu realm, pois como pode ver em lugar algum do código é informado qual realm usar, eu não encontrei uma referência para isso. Testei configurar o log para exibir o SQL gerado no servidor, mas não consegui, coloquei vários log para ALL, a fim de tentar exibir mas não consegui. Pensando no que você disse talvez esteja faltando informar qual realm utilizar, mas não sei como faze-lo.

Você sabe como informar o realm e qual log deve incluir para exibir o SQL gerado pelo server?

Obrigado pela ajuda.

Isso é diferente pra cada servidor. GlassFish eu não conheco, apenas o Openejb/Tomee…

http://openejb.apache.org/examples-trunk/testing-security/README.html
http://openejb.apache.org/examples-trunk/testing-security-2/README.html
http://openejb.apache.org/examples-trunk/testing-security-3/README.html

Mas existe um link onde vc pode encontrar mais informações sobre glassfish:
http://docs.oracle.com/javaee/6/tutorial/doc/bnbxj.html#bnbxr

Obrigado pelos link, já tinha lido-os antes.

Consegui avançar um pouco, consegui fazer a conexão, porém estou com outro problema agora. Quando faço a conexão local, funciona corretamente, mas quando o servidor está em outra máquina, fica muito tempo aguardando o retorno até que dá o seguinte erro:

Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.provider.url=192.168.1.233:3700, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is org.omg.CORBA.COMM_FAILURE: WARNING: IOP00410019: Communications timeout waiting for response. Exceeded 1.800.000 milliseconds vmcid: OMG minor code: 19 completed: Maybe] at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:352) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504) ... 63 more

Alguém sabe qual pode ser o problema?