Como testar login / autenticação com o Arquillian - Java EE 7
Nós temos um aplicativo Java EE 7 e usamos o Arquillian para testar coisas. Agora queremos verificar algumas permissões do usuário atualmente conectado. Minha pergunta é bem básica, como eu faço o login de um usuário quando estou dentro de um testcase? eu liProgrammaticLogin não funciona em testes de arquillian eGlassfish incorporado, segurança e perguntas Arquillian mas eles não são claramente respondidos. Minha abordagem atual é algo assim:
// Inject services etc.
@Test
public void testLogin(){
UserAccount user = new UserAccount();
user.setUsername("bob");
user.setPassword("bob");
userAccountService.save(user);
ProgrammaticLogin pl = new ProgrammaticLogin();
String realmName = "secureJDBCRealm";
try {
pl.login("bob", "bob".toCharArray(), realmName, true);
} catch (Exception e){
e.printStackTrace();
}
}
Agora, quando tento executar isso, recebo um LoginException, alegando que não tenho o LoginModule configurado para "fileRealm". Mas "fileRealm" não é o reino que estou procurando (eu coloquei lá para testar pela primeira vez, mas depois mudei para "secureJDBCRealm", que é o nosso personalizado Security Realm for GlassFish). Nós usamosarquillian-glassfish-embedded-3.1
para testes.