Como usar spring security com orietação a interface

Java

28/12/2012

Boa tarde,

Estou com o seguinte problema, estou querendo usar somente a parte de segurança do Spring
que no caso o Spring Security e estou desenvolvendo orietado a interface

não estou usando anotaçãoes do spring, sei que com ela dá para fazer

esse é um projeto EJB e é aqui que o problema começa....

[b]eu até consigo usar @EJB mas sem o uso de interface
por exemplo[/b]

Dessa maneira funciona...

@Stateless
public class JpaDao{

  conteudo aqui...
}


@Stateless
public class UsuarioService {

   @EJB
   private JpaDao dao;

}


e no bean

@ManagedBean
@ViewScoped
public class UsuarioBean {

  @EJB
  private UsuarioService bean;



Gostaria de saber se alguém já implemento segurança orientada a interface com Spring Security usando @EJB e @Inject


Thiago Volpato

Thiago Volpato

Curtidas 0

Respostas

Josué Júnior

Josué Júnior

28/12/2012

Thiago nunca utilizei segurança orientada a interface com Spring Security usando @EJB, porém tem algumas ressalvas a fazer.
- Porque vc está utilizando EJB com Spring? Não seria melhor vc utilizar somente Spring.
- Se o EJB se faz necessário, a própria especificação possui um mecanismo de segurança chamado JAAS, aconselho dar uma lida no livro "EJB 3 em Ação" no capítulo 6 tem um tópico falando tudinho sobre segurança.

Espero ter ajudado.
GOSTEI 0
Thiago Volpato

Thiago Volpato

28/12/2012

valeu pela dica, mas esse projeto é EJB
consegui implementar do jeito que eu qria

valeu

[RESOLVIDO]
GOSTEI 0
Davi Costa

Davi Costa

28/12/2012

Posta qual sua solução para compartilhar com a comunidade ;)

att Davi
GOSTEI 0
Singular Ti

Singular Ti

28/12/2012

Thiago posta ai o que vc fez para resolver o problema


estou encontrando a mesma dificuldade.

value
GOSTEI 0
Thiago Volpato

Thiago Volpato

28/12/2012

Thiago posta ai o que vc fez para resolver o problema


estou encontrando a mesma dificuldade.

value


Desculpa ai Davi
mto ocupado cara...

mas esta ai, qualquer coisa post ai vou tenta de ajuda


resolvi esse problema utilizando qualifier
então eu tenho dois qualifier para
cada classe

exemplo: EmployeeDAO Tenho o @QEmployeeDao
EmployeeService tenho o @QEmployeeService

tive que remover o CDI @Named e @Inject (Como é um projeto JSF utilizei a @ManagedBean msm)
e utilizava @EJB para injetar o dao
GOSTEI 0
Singular Ti

Singular Ti

28/12/2012

Olá galera para registrar.
eu tbm consegui resolver de uma forma diferente.

@Stateless(name = "EmpresaRepositoryImpl", mappedName = "ejb/EmpresaRepositoryImpl")
@Local(EmpresaRepository.class)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class EmpresaRepositoryImpl implements EmpresaRepository{
...
}


public class LoginBean {

    @EJB
    FuncionarioRepository funcionarioService;

    public String logar(String login, String senha, Empresa empresa){
        String msg = "";

        try {
            InitialContext ini = new InitialContext();
            funcionarioService = (FuncionarioRepository) ini.lookup("ejb/FuncionarioRepositoryImpl");
        } catch (NamingException ex) {
            ex.printStackTrace();
        }
    }
}




eu fiz desta forma e funcionou...
GOSTEI 0
POSTAR