Login Seguro

Forum sobre a ferramenta Oracle JDeveloper, ADF, OAF, etc. (Não é destinado ao aprendeziado da Linguagem Java em geral)
Responder
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Oi pessoal...

qual é a melhor maneira de implementar e como implementar, uma página de login que seja segura?.....

Criptografia... https....

Alguém sabe me indicar um bom material?
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

não é bem o que você quer.. este material é bem abrangente
http://blogs.oracle.com/schan/newsItems ... s/security

https..
http://www.javafree.org/javabb/viewtopic.jbb?t=837

te falar...
o que você quer realmente ??
porque https ?
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Bom na verdade.. não precisa ser https... foi só uma hipótese...

Eu preciso fazer uma tela de login... mas eu não quero que a senha fique trafegando livremente... e eu queria saber qual é a melhor forma de fazer isso....
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

agora sim

existe uma coisa chamada REALM.. is the best pratice 8)

http://www.oracle.com/technology/tech/j ... -JAAS.html

+ou- ... você vai ter uma tabela de usuarios, vai mapea-la no teu web.xml junto com um filtro do realm, dai ele faz tudo pra você ... kkkk.. vai autenticar o teu usuario ( de forma criptografada ), joga-lo na sessão e te disponibilisar um session.getUserData() pra você usar onde quiser

sacou ?!?!?!
good luck

PS.: Depois quero ver um turotial seu postado aqui no site sobre isso.. Realm no OC4J... posso esperar ?
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Humm...

Vou estudar mais então;;;
Agora ando meio sem tempo.. e preciso resolver algumas coisas antes,,,, mas pode deixar... com certeza vou estuda-lo .. e se eu conseguir fazer bunitinhu .. eu monto um tutorial sim ... :D
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

então Mick...

eu te dei a best pratice porem se você quiser algo mais urgente fala ai q eu tento te dar uma ideia pra resolver teu problema de imediato

no meu tcc eu fiz algo bem simples.. implementando uma tela de login e colocando um objeto no contexto, apos ter consultado ele no banco e validado porem não tinha criptografia ne

em fim
qualquer coisa estamos ai
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Bom é assim...

eu estou com dois projetos... um é mais simples.. e é o que q eu estou com mais urgência... ele tem no máximo umas 10 páginas.... e com eu não tenho muito tempo.. eu fiz uma coisa bem manual mesmo... não sei se é a forma mais correta... mas coloquei um scriplet nas páginas pra verificar se a sessão havia sido iniciada....e como eu fiz um cadastro de usuário e senha.. antes da senha ir pro banco ,eu criptografo ela com um algoritmo "SHA - 1" :

Selecionar tudo

MessageDigest md = MessageDigest.getInstance("SHA-1");   

         BigInteger hash = new BigInteger(1, md.digest(password.getBytes("UTF-8")));   

         String password3 = hash.toString(16); 
Daí quando o usuário digitar a senha.. eu criptografo ela.. e comparo....

Já um outro projeto... é bem maior.. e a longo prazo... então acho que vai dar tempo de eu dar uma estudada melhor no realm... que você me sugeriu..
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

scriptlet e uma coisa mta 'feia' ... kkkk
mas confesso que já resolvi problemas com ele tambem
em fim ... tem hora q a elegancia deve ser deixado de lado pois fazer funcionar é o q realmente interessa

8)
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

haha... é verdade..... :lol:
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Oi Vitor....

I need your help again!!... hehe..

Não estou conseguindo entender como funciona esse realm...
até achei um artigo que parece ser o que eu preciso:

http://technology.amis.nl/blog/?p=1462

mas não estou conseguindo entender qual é o ponto em que há a união entre os usuário que estão lá na minha tabela no banco e a aplicação... Eu vi que no jdeveloper tem uma opção em:

Tools--> ADF Security Wizard....

que eu defino todas estas questões... mas até agora eu não entendi como ele faz pra autenticar... ou seja .. como eu pego o usuário e a senha que estão lá no banco e informo para a aplicação... ??

valeu...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

bom... aqui nos fazemos o seguinte..

temos o SecurityFilter.java que faz a validação de login
temos um arquivo chamado security-mapping.xml que mapeia todas as funçoes do banco que verificam as permissões dos usuarios e tambem as responsabilityKey definidas no EBS

e no web.xml alem de registrar o filtro definimos as configurações para teste local (maquina do desenv)

Selecionar tudo

   <!-- registrar o filtro de seguranca -->
    <filter>
        <filter-name>Security Filter</filter-name>
        <filter-class>br.com.br.shared.security.view.servlet.SecurityFilter</filter-class>
        <init-param>
            <param-name>securityManager.datasourceName</param-name>
            <param-value>java:comp/env/jdbc/SecurityManagerDS</param-value>
        </init-param>        
        <init-param>
            <param-name>securityManager.mappingResource</param-name>
            <param-value>br/com/br/shared/security/security-mapping.xml</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>Security Filter</filter-name>
        <url-pattern>*.jsp</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

   <!-- configuracao para teste local – INICIO -->
   <!-- não deve existir no OC4J com SSO  -->
   <security-constraint> 
        <web-resource-collection>
            <web-resource-name>all</web-resource-name>
            <url-pattern>*.jsp</url-pattern>
        </web-resource-collection>
        <auth-constraint> 
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>
    <security-role> 
        <role-name>admin</role-name>
    </security-role>
   <!-- configuracao para teste local – FIM -->
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

olha o que eu achei... vê se da pra te ajudar
http://www.javaworld.com/javaforums/sho ... ed&sb=5&o=
Mick
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 69
Registrado em: Sex, 08 Fev 2008 11:20 am
Localização: São Paulo - SP

Victor... eu não sei se estou no caminho certo..!!!
me corrija se eu eestiver errada!!!...

Eu editei o aqruivo 'login-config.xml' do jdeveloper e adicionei uma 'application-policy', tal qual está no exemplo do link que você me passou..

Selecionar tudo

</application-policy>
     <application-policy name="example">
	<authentication>
	<login-module code="org.jboss.security.ClientLoginModule" flag="required">
	</login-module>
	<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule"
		flag="required">
	<module-option name="managedConnectionFactoryName">
	jboss.jca:service=LocalTxCM,name=SybaseDB
	</module-option>
	<module-option name="dsJndiName">
	java:/SybaseDB
	</module-option>
	<module-option name="principalsQuery">
	Select senha from login where login =?
	</module-option>
   	<module-option name="rolesQuery">
	Select Role 'Roles', RoleGroup 'RoleGroups' from Roles where PrincipalID =?
	</module-option> 
	</login-module>
	</authentication>
</application-policy>
Mas pelo que eu entendi... eu preciso fazer um 'LoginModule', e referenciar esta 'policy' através de um 'LoginContext'... certo?...

e aí ?.. como faço pra referenciar esta policy dentro do jdeveloper?...

Me corrija se eu tiver no caminho errado!!

e mais uma vez valeu.. pela atenção e pela paciência!!
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

3. jboss-web.xml
Create a file jboss-web.xml and place the following code

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>java:/jaas/example2</security-domain>
</jboss-web>

example2 is the name of the security domain which we specified in application policy of login-config.xml
Copy this file in your applications WEB-INF folder

o artigo e para jboss e você usa o oc4j ne...

sinceramente não sei como você vai fazer isso não..

aqui nos usamos o filtro como falei acima

boa sorte
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes