Jaas

Olá pessoal!!

Estou desenvolvendo uma aplicação onde cada usuário deverá posssuir permissão para executar cada uma das funcionalidades do sistema.
Ex: O usuário deve possui permissão para Criar produtos, excluir produto e etc…

Tive dando uma olhada no JAAS, mas acabei concluindo que o JAAS controla permissões a nível de recurso. Ex.:permissão para ler um arquivo e etc… Então ele não serve para minha aplicação.

Esta minha conclusão está correta? Caso sim, vcs conhecem algum framework que possa me ajudar a fazer isto??

Obrigado

na verdade o jaas é uma implementação de realm do container.
ele serve pra vc fazer qualquer tipo de controle na aplicação, inclusive acesso a arquivos e url’s.

<security-constraint>
	<web-resource-collection>
		<url-pattern>/cadastroCliente.do</url-pattern>
	</web-resource-collection>
	<auth-constraint>
		<role-name>CADASTRAR_CLIENTE</role-name>
	</auth-constraint>
</security-constraint>

<security-role>
	<role-name>CADASTRAR_CLIENTE</role-name>
</security-role>

neste caso ai, para se acessar o cadastro de cliente, o usuário logado na aplicação deverá ter a permissão (role) CADASTRAR_CLIENTE.

fviana,

Eu esqueci de um detalhe que é importante, a minha aplicação é desktop.

o JAAS poder ser aplicado no contexto de aplicações Desktop para fazer o controle de permissões a nivel de funcionalidade como é utilizado para aplicações web como no seu exemplo?

Abraços

[quote=Desson]fviana,

o JAAS poder ser aplicado no contexto de aplicações Desktop para fazer o controle de permissões a nivel de funcionalidade como é utilizado para aplicações web como no seu exemplo?

Abraços[/quote]

Sim.

http://www.guj.com.br/posts/list/37258.java;jsessionid=B2E69146229605F61C9A993810F8D13A

[quote=Taz]
Sim.

http://www.guj.com.br/posts/list/37258.java;jsessionid=B2E69146229605F61C9A993810F8D13A[/quote]

Taz,

Sinceramente ainda não entendi muito bem o funcinamento do JAAS, Mas já tenho algumas dúvidas:

1º - o arquivo policy é uma arquivo texto, onde ficam as permissões dos usuários. Qualquer pessoal pode alterá-lo, como eu coloco uma segurança nesse arquivo?
Na minha aplicação eu só quero fazer alterações nesse arquivo através da aplicação, porque preciso fazer log de todas as alterações de permissões.

2º - Como vou restringir o acesso a funcionalidades no meu sistema Desktop??
Como eu tinha dito, acho que o JAAS faz controle a nível de arquivo. Em sistemas WEb parece que as páginas(arquivos) que recebem permissão, ai como é colocado uma funcionalidade em cada página, está resolvido o problema.

Vou dar mais uma estudada e volta a postar aqui.

Valeuu

1 - Geralmente só o administrador tem autonomia e acesso a diretórios com bibliotecas de sua aplicação. Geralmente, o administrador do sistema é o próprio desenvolvedor, ou seja, vc mesmo. Qualquer um pode ter acesso às bilbiotecas do seu sistema?

2 - Para o JASS, não importa se sua aplicação é Web ou Desktop. Ele te fornece fornece o Subject contendo as roles nas quais seu usuário está cadastrado e vc, ao iniciar a funcionalidade, valida se a role pode executar aquela funcionalidade (ou deixa para que um servidor de aplicações como JBoss faça isso para vc).

Pode dar um exemplo sobre qual tipo de funcionalidade vc pretende restringir?

[quote=Taz]1 - Geralmente só o administrador tem autonomia e acesso a diretórios com bibliotecas de sua aplicação. Geralmente, o administrador do sistema é o próprio desenvolvedor, ou seja, vc mesmo. Qualquer um pode ter acesso às bilbiotecas do seu sistema?
[/quote]

Blz, só o adminitrador vai ter acesso :slight_smile:

Qualquer funcionalidade, por exemplo CRUD de produto, CRUD de cliente e etc…

Então acho q sua pergunta já foi respondida.

chmod no *nix.

Botão direito > Propriedade > Segurança> Permissões no Windows

veja em
http://www.guj.com.br/posts/list/38988.java