Usar JAAS numa app RESTfull com AJAX JSON EJB

Oi Galera.

Queria desenvolver uma app java usando o JAAS na segurança.
Essa app rodaria num srver com tomcat ou glassfish com EJBs chamando os POJOs via JPA
Usuarios, Grupos e Permissões seriam configuradas no banco (postgreSQL, MySQL)
Posso ter permissão de grupo e/ou de usuário.

posso ter vários tipos de clientes, (Android, iOS, Win, Linux - GUI e Web)
Ou seja, os clientes não serão somente paginas web em HTML.
Todos os requests serão via HTPP JSON e JSON-RPC para chamar metodos remotos
Quando for pagina Web pretendo usar HTML + AJAX. NÃO pretendo usar JSP ou JSF (todos os exemplos que encontrei usam JSP ou JSF)
to pensando em usar DOJO para framework ajax na spaginas WEB. (aceito comentários sobre essa framework tb. rs)
Para os outros clientes GUI depende da plataforma, mas a maioria consome JSON sem problema.

Então resumindo, to ficando doido ?
isso é possivel? ou no JAAS não tem como implementar esse nivel de segurança por grupo e/ou por usuário de forma fácil?
Quais seriam as outras opções de segurança mais flexiveis e fáceis de implementar ?
Obrigado a todos.

Sim… :O)
Em vez de colocar a securança na tua interface web, faça isso na tua camada de servicos. Desta forma, não importa se vc acessa o servico de uma página web via json, de um celular android via rdp, ou de um aplicativo desktop via webservices. O servico sempre estará seguro.

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

Acho que esses exemplos sao mais simples:
http://openejb.apache.org/examples-trunk/testing-security-2/README.html
http://openejb.apache.org/examples-trunk/testing-security-3/README.html

tveronezi:

Bom a ideia é poder ter clientes de qualquer tipo mesmo. mas todos usando JSON

Mas o fato de ter EJBs statefull não vai contra o REST (stateless)? ou não precisar seguir a risca esse detalhe ?

Outro detalhe, o exemplo usa anotations para criar os grupos/usuários/permissões a determinado recurso
nesse caso acredito eu que não seria possível criar grupos usuários e modificar permissões em runtime. estou certo ?
para cada novo grupo/usuário/permissão teria que mexer no código. certo ?
se sim, está fora de questão, isso precisa ser configurável em runtime
ou seja, tenho que ter uma tela onde configuro isso em um banco de dados e
o sistema reconheça de imediato.

Aguardo mais dicas. Valeu mesmo

Se vc manter a seguranca no EJB, vc não precisa se preocupar com a seguranca na camada de apresentação (JSON nesse caso).

REST e EJBs são coisas diferentes.

REST significa “Representational State Transfer”. Um exemplo de REST é essa página: http://www.guj.com.br/java/278762-usar-jaas-numa-app-restfull-com-ajax-json-ejb. O link significa que queremos o site do guj, mas queremos ver essa Thread específicamente.

Outro exemplo de REST é… http://biblioteca/livro/1234. Esta mesma URL pode significar várias coisas diferentes. Por exemplo, se o usuário envia um GET ele quer ver o livro 1234; se ele envia um DELETE, ele quer deletar o livro… etc.

[quote]Outro detalhe, o exemplo usa anotations para criar os grupos/usuários/permissões a determinado recurso
nesse caso acredito eu que não seria possível criar grupos usuários e modificar permissões em runtime. estou certo ?
para cada novo grupo/usuário/permissão teria que mexer no código. certo ? [/quote]
Certo. Pra isso vc pode licar com a seguranca no código…

@LocalBean
@Stateless
public class BombImpl {

    @Resource
    private SessionContext context;

    public void throwBomb() {
        final Principal principal = this.context.getCallerPrincipal();
        if(!this.context.isCallerInRole("administrador")) {
		  throw new AccessException("Vc não é um administrador! Cai fora!);
        }
        .
        .
        .
    }
.
.
.
}

Mais sobre rest aqui: http://en.wikipedia.org/wiki/Representational_state_transfer

Pessoal, boa tarde.

Também estou desenvolvendo um projeto onde tenho alguns webservices RESTFul, que deverão ser consumidos por qualquer tipo de client.

Na parte de segurança, estou vendo que o caminho é usar o security-context do container Java EE, que no meu caso é o GlassFish 3.1.2.

Vou gerenciar os usuários, senhas e grupos no banco de dados via JDBCRealm, mas tenho uma dúvida bem específica pois nessa parte sou totalmente leigo:

Como ficará a interface de login e senha para um app iOS/Android? Tem como personalizar as telas de login para essas plataformas?

Agradeço desde já.