Pergunta

Sou completamente novo em conceitos de login e autenticação. Estou trabalhando em um aplicativo da Web Glassfish que deve apresentar conteúdo geral a qualquer visitante e algum conteúdo extra para usuários registrados conectados com o nome de usuário e a senha.

Eu tenho lido o tutorial Java EE sobre segurança e pensei que a autenticação baseada em formulário ou HTTP atenderia às minhas necessidades (o visitante é solicitado a credenciais ao tentar procurar um conteúdo seguro).

No entanto, meu primeiro palpite foi que os usuários registrados deveriam ser armazenados em um banco de dados externo, juntamente com a senha de hash e salgada. O aplicativo Security for Web em Glassfish parece confiar no reino preenchido manualmente diretamente no servidor de aplicativos (definindo usuários e grupos e mapeando -os para as funções no aplicativo).

Eu entendi mal o que a segurança no Glassfish é pretendida? Ou uma reino pode ser um banco de dados externo fora do servidor de aplicativos? Qualquer link para a documentação sobre este tópico seria útil para mim.

Agradeço antecipadamente

azedo

Foi útil?

Solução

É realmente possível. No Glassfish, vá para Configuration/Security/Realms, crie um novo reino e defina o nome da classe como com.sun.enterprise.security.auth.realm.jdbc.jdbcrealm. Indique o recurso JDBC ligado ao banco de dados e indique a tabela e as colunas onde o nome de usuário/senha são armazenadas. O banco de dados também deve contém uma tabela para os grupos que o usuário deve pertencer para ter acesso. Indique esses também.

No aplicativo, configure o web.xml e o sun-web.xml com o nome do reino como de costume.

Outras dicas

Aqui está um artigo sobre o Reino JDBC em Glassfish com cenário que você descreveu: http://java-cookbook.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html

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