Pergunta

Eu estou tendo um tempo difícil compreensão JAAS.Tudo parece mais complicado do que deveria ser (especialmente o Sol tutoriais).Eu preciso de um tutorial simples ou exemplo sobre como implementar a segurança (autenticação + autorização) na aplicação java com base no Struts + Spring + Hibernate com o usuário personalizada repositório.Pode ser implementado usando ACEGI.

Outras dicas

Outros usuários fornecem alguns links muito úteis acima, para que eu não me preocupo com os links. Fiz uma pesquisa semelhante em JaaS para aplicativos da Web e encontrei um "Mind Roadblock" até que finalmente percebo que JaaS é uma estrutura que aborda a segurança em uma "camada" diferente da Web no mundo Java. É construído para enfrentar questões de segurança em Java se não Java EE.

JaaS é uma estrutura de segurança criada para garantir as coisas em um nível muito mais baixo, do que a aplicação da Web. Algum exemplo dessas coisas são código e recursos disponíveis no nível da JVM, portanto toda essa capacidade de definir arquivos de política no nível da JVM.

No entanto, como a Java EE é construída sobre o Java SE, alguns módulos de JaaS foram reutilizados em segurança Java EE, como os modelos de loginmodules e chamados.

Observe que, além do Java EE Security, também há segurança na primavera (anteriormente conhecida como ACEGI), que semelhante ao Java EE Security aborda uma "camada" muito maior no problema de applicamento da web. É uma implementação de segurança separada e não está construída sobre a segurança Java EE padrão, embora se comporte de maneira semelhante em muitos aspectos.

Para resumir, a menos que você esteja procurando garantir recursos no nível Java SE (classes, recursos do sistema), não vejo nenhum uso real de JaaS além da classe e interfaces comuns. Basta concentrar -se no uso da segurança da primavera ou da segurança Java EE antiga, que resolvem muitos problemas comuns de segurança de aplicativos da Web.

Javax.Security é a API com sobreplicação excessiva do IMHO. Como resultado, existem implementadores não apenas de loginmodules, mas toda a API de autenticação e autorização, que cria camada de abstração acima, como gerentes de autenticação e autorização.

Para iniciantes, é bom imprimir isto em sua memória.

Em segundo lugar, o IMHO a biblioteca mais simples, de configuração e Go para Jaas é Jboss Picketbox. Diz como fazer autenticação e autorização via JbossauthenticationManager e JbossauthorizationManager ... facilmente configurável via XML ou anotações. Você pode usá -lo para gerenciar aplicativos Web e aplicativos independentes.

Se você precisar da parte de autorização para gerenciar o acesso do repositório, em termos da ACL para obter recursos, é isso que você está procurando com certeza.

O problema com a segurança é que geralmente você precisa personalizá -lo para suas necessidades, para que você possa acabar implementando:

LoginModule - Verifica o nome de usuário + senha

Chamada de retorno é usado assim new LoginContext("Sample", new MyCallbackHandler());

O callbackHandler é passado para os LoginModules subjacentes para que eles possam se comunicar e interagir com os usuários - solicitando um nome de usuário e senha por meio de uma interface gráfica do usuário, por exemplo. Então, dentro do manipulador, você obtém o nome de usuário e a senha do usuário e ele é passado para o LoginModule.

LogIncOntext - Então você apenas liga para LC.Login (); e autenticar as credenciais. O LogIncOntext é preenchido com o assunto autenticado.

No entanto, o JBoss PicketBox oferece um caminho muito fácil de percorrer, a menos que você precise de algo específico.

lsiu, a resposta é uma das poucas respostas que realmente "pegar" ;)

Somando-se a essa resposta, realmente uma boa referência sobre este tema é O que Aconteceu com JAAS?.

Ele explica como JASPIC é o link em Java EE entre o Servlet e EJB modelos de segurança e, eventualmente, um módulo de login JAAS, mas que, em muitos casos, JAAS papel é reduzido para o de um relativamente simples nome de usuário e funções de provedor em Java EE.

Do mesmo autor é JAAS na Empresa, o que é um artigo mais antigo, mas fornece uma série de informações históricas sobre por que o Java SE (JAAS) e Java EE modelos divergiu da maneira que eles fizeram.

Em termos gerais, mas alguns tipos de JAAS são directamente utilizados em Java EE, basicamente, Principal , Subject, e CallbackHandler.Os dois últimos são utilizados, principalmente, por JASPIC.Eu já expliquei JASPIC no artigo A implementação de recipiente de autenticação em Java EE com JASPIC.

Eu não posso falar muito com o próprio Jaas, mas isso Guia "Etapas sugeridas" na segurança da primavera e o manual de referência Ambos são bons recursos em segurança da primavera - se sua configuração é algo próximo de simples, você realmente não precisa fazer muito mais do que lê -las.

Para um tutorial puramente JaaS, consulte isto. É velho, mas deve ajudar no básico do JaaS.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top