이봐 난 데 내 springsecurity 기반의 로그인으로 엉망 약간의봄 보안/최대 절전 모드 : 올바른 자격증 명?
나는 여기 내 사용자 테이블의 오류 "잘못된 자격 증명"
가 계속 해요!
[USERTABLE] [1 ]
는 여기의 ApplicationContext 내는 dataSource의 :
<!-- database driver/location -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ams" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
내 SecurityContext에 :
<?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:context="http://www.springframework.org/schema/context"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<!-- <security:http auto-config="true" access-decision-manager-ref="accessDecisionManager"> -->
<security:http auto-config="true">
<security:intercept-url pattern="/login/login.do" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/login/doLogin.do" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/lib/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/css/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/images/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/resources/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBERED" />
<security:form-login login-page="/login/login.do" authentication-failure-url="/login/login.do?login_error=true" default-target-url="/test/showTest.do"/>
<security:logout logout-success-url="/login/login.do" invalidate-session="true" />
<security:remember-me key="rememberMe"/>
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource"
users-by-username-query="select USERNAME as username, PASSWORD as password, DELETED as deleted from ams.user where USERNAME=?"
authorities-by-username-query="
select distinct user.USERNAME as username, permission.NAME as authority
from scu.user, scu.user_role, scu.role, scu.role_permission, scu.permission
where user.ID=user_role.USER_ID AND user_role.ROLE_ID=role_permission.ROLE_ID AND role_permission.PERMISSION_ID=permission.ID AND user.USERNAME=?"/>
<!-- security:password-encoder ref="passwordEncoder" /> -->
</security:authentication-provider>
</security:authentication-manager>
<bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
<constructor-arg value="256" />
</bean>
</beans>
내가 로그인을 시도 : 그것은 나에게 나쁜 자격 증명을 오류를 제공 admin과 init01
... = (
는 모든 제안은 감사합니다!
해시 암호 인코더는 문제가 아니며 방금 주석 처리했습니다. 그래서 당신은 "진짜"암호가 실제로 무엇인지 알 수 있습니다 ... 내가 그것을 사용하거나 사용하지 않을 때 아무 것도 바뀌지 않습니다 –
대부분 문제 일 수 있습니다. 그것이 없으면, 그것은 전혀 작동하지 않을 것이고 그것이 생성하는 문자열이 당신이 데이터베이스에 가지고있는 것과 정확하게 일치하지 않는다면 그것으로는 작동하지 않을 것입니다. 따라서 링크. 로그를 확인하십시오. 의심 스럽다면 디버거를 사용하고 중단 점을 설정하십시오 (https://github.com/SpringSource/spring-security/blob/master/core/src/main/java/org/springframework/security). /authentication/dao/DaoAuthenticationProvider.java#L84). 암호가 일치하지 않아 인증에 실패하면 해당 로그 메시지도 표시되어야합니다. –
init01의 해시를 알고 있습니다. (다른 사용자와 함께 사용하는 것입니다.) 그리고 확실히 작동하지 않습니다. 감사합니다. 분명히 통과 할 것입니다. –