Estou consumindo um webservice escrito em Advpl-ASP, com JAX-WS, com fron em JSF 2.0 .
Este servidor de webservice possui um serviço com métodos para login e logout. Os demais serviços possuem na requisição o USERCODE e outras tags, sendo este USERCODE a única tag passada no momento do método de logout . Seu conteúdo é recebido como resposta após obter sucesso no método de login.
Como estou iniciando no java pra web, estou certo em afirmar que desta forma que o webservice funciona não preciso de phase listener e qualquer forma de autenticação e controle de acesso no site a ser desenvolvido em JSF 2.0 / primeface, consumindo os serviços via JAX-WS ?
Estamos falando em JAAS ?
A realidade é que você precisa realizar uma análise da necessidade do teu sistema. Qualquer um pode acessar a URL dele e enviar uma requisição ao WS, mesmo que o WS exiga autenticação ?
Se este for o caso é uma possibilidade de você permitir livre acesso ao seu sistema, mas, se por algum motivo o teu sistema WEB exige algum tipo de autenticação, seja lá qual for o motivo, ai tu terá de tomar medidas de segurança no que diz respeito ao acesso.
Pois bem, trata-se de um portal para os representantes de vendas incluirem e acompanharem seus pedidos. Poderão acessá-lo via web. O servidor de webservice não está acessível via web, apenas na rede interna, onde estará o servidor GlassFish, possibilitando a comunicação externa.
Necessito criar agora um novo front usando JSF 2.0 . Não sei se seria necessário usar JAAS no caso de consumir este webservice, pois como havia lhe dito, este webservice possui métodos de login e logout. Resta saber que medidas de segurança tenho que tomar do lado do consumo dos serviços em JSF 2.0.
Pois bem, trata-se de um portal para os representantes de vendas incluirem e acompanharem seus pedidos. Poderão acessá-lo via web. O servidor de webservice não está acessível via web, apenas na rede interna, onde estará o servidor GlassFish, possibilitando a comunicação externa.
Necessito criar agora um novo front usando JSF 2.0 . Não sei se seria necessário usar JAAS no caso de consumir este webservice, pois como havia lhe dito, este webservice possui métodos de login e logout. Resta saber que medidas de segurança tenho que tomar do lado do consumo dos serviços em JSF 2.0.
Vicente
[/quote]
Oi Vicente,
é justamente disso que se trata. Acredito eu que este serviço web esteja disponível a qualquer um, apenas se for um HTTPS para que isso não aconteça. Provavelmente por isso exige um login e logout, mas enfim. A questão é como o teu sistema irá acessar esse serviço Web. Eu fiz parte de uma equipe que construiu um sistema WEB em JSF também, usava JAAS e acessava serviço WEB.
Isso só acontecia quando era clicado em um determinado link (havia outro momentos mas não vem ao caso) e somente após isto o serviço era acionado. O que eu quero dizer, é que o sistema só faria o acesso ao serivço WEB após o login obrigatório do usuário do sistema, entende ?
Então você deve pensar se o teu cliente acesso o serivço web fazendo ou não o login em teu sistema
Abraços.
A 1ª tela em JSF: tela de login. O user e a password serão enviadas ao servidor webservice, por intermédio de um consumo pelo JAX-WS. A resposta positiva trará a informação do USERCODE, o qual será usado a partir de agora para consumir os demais serviços/métodos deste webservice, em outras páginas em JSF, até a chamada do método logout, que também precisa deste USERCODE. Caso a resposta seja negativa, o usuário permanecerá na tela de login.
Não entendo quando vc fala “login no sistema”. A única forma de login que vejo é esta, via web service. Este webservice funciona da seguinte forma: se não se logar primeiro nele, não se consegue utilizar outros serviços.
Li sobre JAAS aqui http://www.guj.com.br/articles/184 e pelo que deu a entender, não tenho necessidade. Mas, daí, vem a pergunta: estou certo ? Existe algo a mais além do JAAS que eu deva estudar ? Vou ter que usar o JAAS ?
Era exatamente isso que eu queria saber. O login no teu sistema é via WS e não em um banco de dados, como é comum.
Perfeito !
Então, o JAAS faz o controle de permissão e acesso as páginas, isso evita que alguém acesse uma página do teu sistema simplesmente passando uma URL, por exemplo.
Imagina um Servlet com o método GET e eu passo a URL completa e tento inserir códigos e/ou logins inexistentes. Basicamente, a implementação do JAAS busca barrar esse tipo de acesso, sendo que só será possível após uma autenticação.
Existe o PhaseListener, que também atua dessa forma. Eu nesses anos, só trabalhei com JAAS mesmo, portanto, não serei eu a te explicar algo sobre o PhaseListener.
De qualquer forma Vicente, você precisa buscar um meio de barrar que um usuário acesse páginas do teu sistema digitando diretamente a URL, sem ter feito o login. Como tu vai fazer isso ? Fica a teu critério, JAAS, PhaseListener, “no braço”, ai é decisão sua. Eu particularmente, recomendo JAAS, mas dá uma lida sobre PhaseListener, talvez resolva sua necessidade de forma rápida, fácil e simples