Duvida com Segurança; Autenticação Baseada em Formulários

3 respostas
GabrielCardelli

Galera falae beleza?

Estou com uma duvida cruel... estou lendo Use a cabeça JSP & Servlet quem tiver ele poderá me ajudar melhor. Estou na página 679

E lá ela poe assim

1) NO DD:

<login-config>
	
	
		<auth-method>FORM</auth-method>
			<form-login-config>
				<form-login-page>/loginPage.jsp</form-login-page>
				<form-error-page>/loginErro.jsp</form-error-page>
			</form-login-config>
	
	
	</login-config>

2)

Dentro de Login Page:

<form method="post" action="j_security_check">

	<input type="text" name="j_username" />
	<input type="password" name="j_password" />
	<input type="submit" />

</form>

3) Dentro de eRRO PAGE:

eerrro....

Tudo bem.. até ai eu entendi que j_username ... é como o container entende e talz.

Porém eu queria saber... Quando eu logo como Admin sem senha (Tomcat) ele da o seguitne:

HTTP Status 400 - Invalid direct reference to form login page

Quando eu digito meu nome e qlqr senha Ele vai pra página de erro.

Como ele não vai pra de erro com o Admin sem senha? Ele usa o login do tomcat? (Acho que sim porém com duvidas)

E onde entram os security-constraints que eu declarei nessa história?

Meu Web.xml (Acompanhando o livro)

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>ProjetoTesteSegurança</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
	
	
	<security-constraint>
	
	
			<web-resource-collection>
			
			
				<web-resource-name>Protected</web-resource-name>
				<url-pattern>/protected/teste.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>
	
	<login-config>
	
	
		<auth-method>FORM</auth-method>
			<form-login-config>
				<form-login-page>/loginPage.jsp</form-login-page>
				<form-error-page>/loginErro.jsp</form-error-page>
			</form-login-config>
	
	
	</login-config>
	
	
</web-app>

Quem puder ajudar?da uma explicação? agradeço muito... não estou entendendo.. creio que tudo que fiz antes não uso pra nada... pôs as páginas são outras e não sei como funciona elas no caso protected/teste.jsp

Quem puder ajudar... dar uma esclarecida ou passar um tutorial... agradeço demais...

Abraço. e obrigado!!

3 Respostas

GabrielCardelli

Galera estou entendendo como funciona eu entro na minha pagina teste.jsp onde ela só escreve na tela OK

quando entro nela como ela é restrita ele me manda pro formulário de login... dai eu digito admin sem senha dou ok e vai pra pagina teste.jsp
porem com a seguinte mensagem

HTTP Status 403 - Access to the requested resource has been denied

--------------------------------------------------------------------------------

type Status report

message Access to the requested resource has been denied

description Access to the specified resource (Access to the requested resource has been denied) has been forbidden.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.20

Abraço espero ajudas...

GabrielCardelli

Galera consegui mudando o role-name para admin = ao do tomcat-users.

Como eu faria para não utilizar o tomcat-users e sim um BD[?

Abraço e obrigado desde já

R
Tente configurar o arquivo context.xml
<Context antiJARLocking="true" path="/AgenciaTurismo"> 
  
  //configuracao de conexao com banco de dados 
   <Resource name="jdbc/grupo5" 
            auth="Container"
            type="javax.sql.DataSource" 
            username="grupo5"
            password="grupo5"
            driverClassName="org.apache.derby.jdbc.ClientDriver"
            url="jdbc:derby://localhost:1527/grupo5"
            maxActive="8"
            maxIdle="4"/>

    //configuracao para login
    <Realm className="org.apache.catalina.realm.DataSourceRealm"
         debug="99"
         dataSourceName="jdbc/grupo5" //usa conexao criada anteriormente
         localDataSource="true"
         userTable="usuario"//tabela
         userNameCol="login"//login
         userCredCol="senha"//senha
         userRoleTable="app.papeis"//caso tenha criado regras para diferentes tipos de usario(admin,cliente..), tabela com dois campos, login e papel
         roleNameCol="papel"/>//papel atribuidos ao login
</Context>

espero ter ajudo
boa sorte

Criado 3 de novembro de 2009
Ultima resposta 24 de dez. de 2009
Respostas 3
Participantes 2