Erro spring security

6 respostas
D

Pessoal, estou recebendo um erro mas não consigo achar onde está o problema. Alguém pode me ajudar por favor?
segue o erro que estou recebendo

Sep 12, 2011 10:50:49 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [FacesServlet] in context with path [/FinanceiroWeb] threw exception [org/springframework/security/core/context/SecurityContextHolder] with root cause
java.lang.ClassNotFoundException: org.springframework.security.core.context.SecurityContextHolder
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
	at org.springframework.security.taglibs.facelets.SpringSecurityELLibrary.getUserAuthorities(SpringSecurityELLibrary.java:50)
	at org.springframework.security.taglibs.facelets.SpringSecurityELLibrary.ifAnyGranted(SpringSecurityELLibrary.java:81)
	at org.springframework.security.taglibs.facelets.IfAnyGrantedTag.apply(IfAnyGrantedTag.java:45)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
	at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:769)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)

meu FacesConfig

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

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">

</faces-config>
meu web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>FinanceiroWeb</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  
  <context-param>
  <param-name>javax.faces.PROJECT_STAGE</param-name>
  <param-value>Development</param-value>
  </context-param>
  <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
  <filter-name>conexaoFilter</filter-name>
  <filter-class>financeiro.web.filter.ConexaoHibernateFilter</filter-class>
  </filter>
  
  <filter-mapping>
  <filter-name>conexaoFilter</filter-name>
  <url-pattern>*.jsf</url-pattern>
  </filter-mapping>
  
  <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <resource-ref>
  <description>DataSource FinanceiroDB</description>
  <res-ref-name>jdbc/FinanceiroDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
  
  <!-- Spring Security -->
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
  /WEB-INF/applicationContext.xml
  /WEB-INF/applicationContext-security.xml
  </param-value>
  </context-param>
  
 <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>
 <listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
</web-app>
meu springsecurity config
<?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:b="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">

	<http>
		<intercept-url pattern="/admin/**" access="ROLE_ADMINISTRADOR" />
		<intercept-url pattern="/restrito/**" access="ROLE_USUARIO" />
		<form-login login-page="/publico/login.jsf"
			always-use-default-target="true" default-target-url="/restrito/principal.jsf"
			authentication-failure-url="/publico/login.jsf?login_error=1"/>
		<logout />
		<remember-me />
	</http>

	<authentication-manager>
		<authentication-provider>
		<password-encoder hash="md5" />
			<jdbc-user-service data-source-ref="financeiroDataSource"
				authorities-by-username-query="SELECT u.login, p.permissao FROM usuario u, usuario_permissao p WHERE u.codigo = p.usuario AND
		u.login=?"
				users-by-username-query="SELECT login, senha, ativo FROM usuario WHERE login=?" />

		</authentication-provider>
	</authentication-manager>

</b:beans>

estou usando o JSF 2.0 e o spring 3.03 e o spring security 3.05 com o tomcat 7.0, o tomcat inicia normal, mas quando eu tento acessar o sistema ele me dá esta exception
Se alguém puder me dar um força eu agradeço.
Estou começando agora e não tenho muita experiencia.
Valeu galera!

6 Respostas

g4j

Está faltando jar do spring security :

D

g4j:
Está faltando jar do spring security :


java.lang.ClassNotFoundException: org.springframework.security.core.context.SecurityContextHolder

bom dia g4j, tudo bem?
Pode me dizer qual talvez esteja faltando?
Obrigado!!

g4j

Estou usando o spring security 3.1 aqui. Essa classe está no jar spring-security-core-3.1.0.RC1.jar.

D

Agora o programa rodou, mas apresenta um novo erro

“jj_spring_security_logout is not available.”

g4j

dennisbf:
Agora o programa rodou, mas apresenta um novo erro

jj_spring_security_logout is not available.”

deve ser algum erro de configuração da parte de login / logout.

tem dois jotas “jj” em j_spring_security_logout?

D
g4j:
dennisbf:
Agora o programa rodou, mas apresenta um novo erro

"jj_spring_security_logout is not available."

deve ser algum erro de configuração da parte de login / logout.

tem dois jotas "jj" em j_spring_security_logout?


não eu digitei errado mesmo

meu login
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
		xmlns:h="http://java.sun.com/jsf/html"
		xmlns:f="http://java.sun.com/jsf/core"
>
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Login</title>
</h:head>
<h:body>
<h1>Login</h1>
<hr/>
<h:form>
<h:commandButton action="#{usuarioBean.novo }" value="Registre-se" />
</h:form>
<h:panelGroup rendered="#{!empty param.login_error}">
<span style="font-color:red"> Erro ao efetuar o login.</span><br/>
<br/>
Motivo: #{SPRING_SECURITY_LAST_EXCEPTION.message}
</h:panelGroup>
<form id="login" method="post" action="#{request.contextPath}/j_spring_security_check">
<table>
<tr><td>Login</td>
<td><input type="text" name='j_username' /></td>
</tr>
<tr><td>Senha</td>
<td><input type='password' name="j_password"/></td></tr>
<tr><td align="right"><input type="checkbox" name="_spring_security_remember_me" /></td>
<td>Entrar Automaticamente</td>
</tr>
<tr><td></td>
<td><input type="submit" value="Entrar" /></td>
</tr>
</table>
<script>
document.getElementById("login").j_username.value = "#{SPRING_SECURITY_LAST_USERNAME}";
</script>
</form>
<hr/>
</h:body>
</html>
meu logout
<a onclick="document.location='#{request.contextPath }/j_spring_security_logout'" title="Sair">
<h:graphicImage library="imagens" name="logout16.png" />
</a>
</h:form>
</h:body>
</html>

estranho, ele parou de dar erro de security check, mas eu não consigo logar no sistema, ele me retorna "bad credentials".
Mas o login e senha estao corretos, mesmo criando um novo usuário ele n aceita o login =\
Obrigado!!

Criado 12 de setembro de 2011
Ultima resposta 12 de set. de 2011
Respostas 6
Participantes 2