Problema Spring Security

13 respostas
tiago.frioli

Olá pessoal tudo bem ?

Estou com um probleminha com o Spring Security, sou iniciante…

Basicamente ao fazer o login a pagina que deveria ser exibida retorna o seguinte erro HTTP Status 404 - /SpringDB/admin/
Entretanto se eu coloco o final da pagina no endereço a pagina que deveria ser exibida apos o login é carregada.

http://localhost:8084/SpringDB/admin/index.jsp

Alguem sabe porque isso está acontecendo ?

Abraços.

13 Respostas

raphael.ricci

como vc esta fazendo o redirecionamento?

tiago.frioli
raphael.ricci:
como vc esta fazendo o redirecionamento?

Segue o applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:beans="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<http auto-config="true" access-denied-page="/negado">

<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=invalido"/>

<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />

</http>

<authentication-manager>

<authentication-provider>

<jdbc-user-service data-source-ref="dataSource"

users-by-username-query="SELECT username, password, 'true' as enable FROM users WHERE username=?"

authorities-by-username-query="SELECT username, authority FROM users WHERE username=?"


/>

</authentication-provider>

</authentication-manager>

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >

<beans:property name="url" value="jdbc:mysql://localhost:3306/security" />

<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />

<beans:property name="username" value="root" />

<beans:property name="password" value="" />

</beans:bean>

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    <beans:property name="basename" value="classpath:org/springframework/security/messages"/>  
</beans:bean>
raphael.ricci
tiago.frioli:
raphael.ricci:
como vc esta fazendo o redirecionamento?

Segue o applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:beans="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<http auto-config="true" access-denied-page="/negado">

<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=invalido"/>

<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />

</http>

<authentication-manager>

<authentication-provider>

<jdbc-user-service data-source-ref="dataSource"

users-by-username-query="SELECT username, password, 'true' as enable FROM users WHERE username=?"

authorities-by-username-query="SELECT username, authority FROM users WHERE username=?"


/>

</authentication-provider>

</authentication-manager>

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >

<beans:property name="url" value="jdbc:mysql://localhost:3306/security" />

<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />

<beans:property name="username" value="root" />

<beans:property name="password" value="" />

</beans:bean>

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    <beans:property name="basename" value="classpath:org/springframework/security/messages"/>  
</beans:bean>

Adiciona isso

<form-login login-page="/login.jsp"  [color=red]default-target-url="/index.jsp"[/color] authentication-failure-url="/login.jsp?error=invalido"/>

//default-target-url=/index.jsp se authentication  tiver successo, você será redirecionado para "/index.jsp"
tiago.frioli
raphael.ricci:
tiago.frioli:
raphael.ricci:
como vc esta fazendo o redirecionamento?

Segue o applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:beans="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<http auto-config="true" access-denied-page="/negado">

<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=invalido"/>

<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />

</http>

<authentication-manager>

<authentication-provider>

<jdbc-user-service data-source-ref="dataSource"

users-by-username-query="SELECT username, password, 'true' as enable FROM users WHERE username=?"

authorities-by-username-query="SELECT username, authority FROM users WHERE username=?"


/>

</authentication-provider>

</authentication-manager>

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >

<beans:property name="url" value="jdbc:mysql://localhost:3306/security" />

<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />

<beans:property name="username" value="root" />

<beans:property name="password" value="" />

</beans:bean>

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    <beans:property name="basename" value="classpath:org/springframework/security/messages"/>  
</beans:bean>

Adiciona isso

<form-login login-page="/login.jsp"  [color=red]default-target-url="/index.jsp"[/color] authentication-failure-url="/login.jsp?error=invalido"/>

//default-target-url=/index.jsp se authentication  tiver successo, você será redirecionado para "/index.jsp"

Raphael , essa tag ja está no applicationContext

Abraços e obrigado

raphael.ricci

deu certo?

tiago.frioli

raphael.ricci:
deu certo?

Então essa tag que vc passou ja estava no projeto eu apenas adicionei o default-target-url="/index.jsp" que não estava, mas continuou o mesmo problema.

Engraçado que a primeira vez que rodei esse exemplo funcionou perfeitamente agora ele ta com esse pau e não descubro o que é.

Obrigado por estar ajudando.

raphael.ricci

manda o log de erro

tiago.frioli

Não direciona aparece a mesma coisa na pagina .

HTTP Status 404 - /SpringDB/admin/

type Status report

message /SpringDB/admin/

description The requested resource (/SpringDB/admin/) is not available.

Apache Tomcat/7.0.22

Se eu colocar o index.jsp no fim da pagina ela carrega, mas o correto era carregar esse endereço completo.

raphael.ricci

a página (index.jsp) que você direciona esta dentro dessa pasta?

tiago.frioli

Está sim, tanto que depois que a indico no final do endereço na barra de endereço ela carrega normalmente, caso eu tenha feito o login corretamente.

Da uma olhada no video.

http://www.screenr.com/dvC7

Abraços

victormagno

Você configurou o web.xml corretamente?

<listener>
	 
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	 
</listener>
	 
<filter>
 
	<filter-name>springSecurityFilterChain</filter-name>
 
	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	 
</filter>
	 
<filter-mapping>
	 
	<filter-name>springSecurityFilterChain</filter-name>
	 
        <url-pattern>/*</url-pattern>

</filter-mapping>
tiago.frioli
victormagno:
Você configurou o web.xml corretamente?
<listener>
	 
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	 
</listener>
	 
<filter>
 
	<filter-name>springSecurityFilterChain</filter-name>
 
	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	 
</filter>
	 
<filter-mapping>
	 
	<filter-name>springSecurityFilterChain</filter-name>
	 
        <url-pattern>/*</url-pattern>

</filter-mapping>

Cara matou a charada rs, era isso mesmo meu web.xml estava errado puts e eu achando que o problema era no applicationContext.

Obrigado a todos pela ajuda.

Abraços.

victormagno

Nada, Valeu!

Criado 27 de dezembro de 2012
Ultima resposta 27 de dez. de 2012
Respostas 13
Participantes 3