Erro após configurar spring security

4 respostas
renatomattos2912

Boa tarde galera,

Minha aplicação estava funcionando até eu configurar o spring security, após isso começou a dar o erro abaixo quando faço deploy, alguem sabe como resolver?

17:36:55,875 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015876: Starting deployment of "nesic_intranet.war"

17:37:17,171 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-4) Class Path entry jcifs.jar in /C:/jboss711_2/bin/content/nesic_intranet.war/WEB-INF/lib/jtds-1.2.5.jar  does not point to a valid jar for a Class-Path reference.

17:37:17,484 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.unit.nesic_intranet.war.POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit.nesic_intranet.war.POST_MODULE: Failed to process phase POST_MODULE of deployment "nesic_intranet.war"

at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]

at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]

at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_05]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_05]

at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_05]

Caused by: java.lang.RuntimeException: Error getting reflective information for class org.springframework.security.taglibs.authz.AccessControlListTag with ClassLoader ModuleClassLoader for Module deployment.nesic_intranet.war:main from Service Module Loader

at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]

at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)

at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:85)

at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:70)

at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:55)

at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]

 5 more

Caused by: java.lang.NoClassDefFoundError: org/springframework/security/acls/model/SidRetrievalStrategy

at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.7.0_05]

at java.lang.Class.privateGetDeclaredFields(Unknown Source) [rt.jar:1.7.0_05]

at java.lang.Class.getDeclaredFields(Unknown Source) [rt.jar:1.7.0_05]

at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.(ClassReflectionIndex.java:57) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]

at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]

 10 more

Caused by: java.lang.ClassNotFoundException: org.springframework.security.acls.model.SidRetrievalStrategy from [Module deployment.nesic_intranet.war:main from Service Module Loader]

at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)

at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)

at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)

at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

 15 more
17:37:17,500 INFO  [<a href="http://org.jboss.as">org.jboss.as</a>] (MSC service thread 1-3) JBAS015951: Admin console listening on <a href="http://127.0.0.1:9990">http://127.0.0.1:9990</a>

17:37:17,500 ERROR [<a href="http://org.jboss.as">org.jboss.as</a>] (MSC service thread 1-3) JBAS015875: JBoss AS 7.1.1.Final “Brontes” started (with errors) in 25266ms - Started 140 of 218 services (1 services failed or missing dependencies, 76 services are passive or on-demand)

17:37:17,500 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment “nesic_intranet.war” was rolled back with failure message {“JBAS014671: Failed services” => {“jboss.deployment.unit.“nesic_intranet.war”.POST_MODULE” => “org.jboss.msc.service.StartException in service jboss.deployment.unit.“nesic_intranet.war”.POST_MODULE: Failed to process phase POST_MODULE of deployment “nesic_intranet.war””}}

17:37:19,234 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015877: Stopped deployment nesic_intranet.war in 1732ms

17:37:19,234 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report

JBAS014777:   Services which failed to start:      service jboss.deployment.unit.“nesic_intranet.war”.POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit.“nesic_intranet.war”.POST_MODULE: Failed to process phase POST_MODULE of deployment “nesic_intranet.war”

17:37:19,234 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {“JBAS014653: Composite operation failed and was rolled back. Steps that failed:” => {“Operation step-2” => {“JBAS014671: Failed services” => {“jboss.deployment.unit.“nesic_intranet.war”.POST_MODULE” => “org.jboss.msc.service.StartException in service jboss.deployment.unit.“nesic_intranet.war”.POST_MODULE: Failed to process phase POST_MODULE of deployment “nesic_intranet.war””}}}}

4 Respostas

renatomattos2912

Então, consegui resolver este problema, coloquei todos os jars do spring framework e do springsecurity na lib e ae funcionou, porem agora estou com outro problema, nao consigo logar, eu fiz o teste escrevendo os usuarios e senhas na mão em plaintext no aplicationcontext.xml, sem usar banco de dados nem criptografia e ae funcionou mas quando coloco para buscar as informações do usuario no banco ele me retorna login incorreto, mesmo eu tendo certeza q esta correto. segue abaixo meu aplicationcontext:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sec="http://www.springframework.org/schema/security"
	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.0.xsd">
 
    <!-- data source -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" />
		<property name="url" value="jdbc:jtds:sqlserver://192.168.1.9/NES_TESTE;Instance=SQLNESIC;user=MEUSUARIO;password=MINHASENHA;" />
    </bean>
    
    <sec:http auto-config="true">
	    <sec:form-login login-page="/" authentication-failure-url="/?error=invalido" />
	    <sec:intercept-url pattern="/usuarios/**" access="ROLE_FUNC,ROLE_GER" />
	    <sec:intercept-url pattern="/regraUsuario/**" access="ROLE_GER" />
	    <sec:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
	</sec:http>

	<sec:authentication-manager>
	    <sec:authentication-provider>
		    <sec:password-encoder hash="sha-256"/>
	        <sec:jdbc-user-service 
	        	data-source-ref="dataSource"
    			users-by-username-query="select login as username, senha as password, 
    					case When flgatv = '0' Then 'true' Else 'false' end as enable 
						from INTRA_NESIC_USUARIO where login = ?"
			     authorities-by-username-query="select usuario.login as username, regra.regra as authority
						from INTRA_NESIC_REGRA_USUARIO as regra
						inner join INTRA_NESIC_USUARIO as usuario 
						on regra.id = usuario.regra_id and usuario.login = ?" />
	    </sec:authentication-provider>
	</sec:authentication-manager>
</beans>
renatomattos2912

Quanto ao erro de login eu percebi que o erro esta na senha criptografada, eu fiz um teste criando um usuario no banco com senha sem criptografia ou seja, apenas texto, e tirei a linha “<sec:password-encoder hash=“sha-256”/>” do meu aplicationcontext.xml e ae tudo funcionou corretamente, porem eu quero utilizar a criptografia, os outros usuarios do banco esta com senha encriptada em sha-256, alguem sabe como resolver isso?

renatomattos2912

só para informação, o metodo q uso para encriptar a senha e salvar no bd quando faço cadastro do usuario é o seguinte:

public String encryptPass(String senha) throws NoSuchAlgorithmException, UnsupportedEncodingException {
		MessageDigest algorithm = MessageDigest.getInstance("SHA-256");
		byte messageDigest[] = algorithm.digest(senha.getBytes("UTF-8"));
		StringBuilder hexString = new StringBuilder();
		for (byte b : messageDigest) {
		  hexString.append(String.format("%02X", 0xFF & b));
		}
		return hexString.toString();
	}
renatomattos2912

Opa galera, problema resolvido (eu aqui forever alone uhauhauh) troquei o metodo de encriptar senha por este abaixo e tudo funcionou perfeitamente, topico finalizado, obrigado a mim mesmo uhauhauh.

public String encryptPassSpring(String pass){
		PasswordEncoder encoder = new ShaPasswordEncoder(256);
		pass = encoder.encodePassword(pass, null);
		return pass;
		
	}
Criado 14 de agosto de 2012
Ultima resposta 15 de ago. de 2012
Respostas 4
Participantes 1