2016-12-03 3 views
-1

я работаю над модулем аутентификации весной и перед сбой проверки подлинности с помощью BCryptPasswordEncoder как последовать за в я логин успешно через учетной записи администратора и создать фиктивный пользователь. затем i успешно зарегистрирован через фиктивный пользователь и выйдите из системы. после проверки двух учетных записей пользователя (администратора, пользователя), когда я пытаюсь войти в систему через любого пользователя, я получил Ошибка входа ошибка.BCryptPasswordEncoder весной безопасности

Примечание: если я не использую какую-либо схему шифрования пароля, то мой модуль работает нормально.

<security:http auto-config="true" use-expressions="false"> 
    <security:form-login login-page="/login" login-processing-url="/login" username-parameter="custom_username" 
     password-parameter="custom_password" 
     default-target-url="/index" 
     always-use-default-target="true" 
     authentication-failure-url="/login?error=true" /> 

    <security:logout logout-url="/logout" logout-success-url="/login?logout=true"/> 

    <security:intercept-url pattern="/admin/*" access="ROLE_ADMIN"/> 
    <security:intercept-url pattern="/hrm/*" access="ROLE_HRM, ROLE_ADMIN"/> 
    <security:intercept-url pattern="/leave/*" access="ROLE_HRM, ROLE_USER, ROLE_ADMIN"/> 
    <security:intercept-url pattern="/index**" access="ROLE_HRM, ROLE_USER, ROLE_ADMIN"/> 
    <security:intercept-url pattern="/**" access="ROLE_ANONYMOUS, ROLE_HRM, ROLE_USER, ROLE_ADMIN"/> 
</security:http> 

<bean id="encoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">   
    <constructor-arg name="strength" value="12" /> 
</bean> 

<security:authentication-manager> 
    <security:authentication-provider> 

     <security:password-encoder ref="encoder"/> 

     <security:jdbc-user-service data-source-ref="dataSource" 
      authorities-by-username-query="select app_user.username, role.name from app_user 
              join app_user_role on app_user.id = app_user_role.users_id 
              join role on app_user_role.roles_id = role.id 
              where app_user.username = ?" 
      users-by-username-query="select username,password,enabled from app_user where username = ?" /> 

    </security:authentication-provider> 
</security:authentication-manager> 
+1

Что такое исключение, код состояния, который вы получаете для неудачных попыток? – shazin

ответ

0

Это недостаток информации, предоставленной в вашем вопросе, но вы можете попробовать следующее:

  1. Проверьте пароли пользователей хранятся в зашифрованном виде в вас DB;

  2. Включить точку останова в UsernamePasswordAuthenticationFilter.attemptAuthentication() и сделать несколько шагов отладки. Здесь вы можете понять, что на самом деле не так в вашем рабочем процессе.

Для получения более точной помощи предоставьте дополнительную информацию (код состояния, сообщение об ошибке и т. Д.). Спасибо

+0

i не получил никакого Исключения, просто получите сообщение об ошибке как Недействительное имя пользователя и пароль. i после данной ссылки для аутентификации https://github.com/jirkapinkas/java-blog-aggregator – Abbas

+0

Какой код статуса вы получили при отправке запроса на аутентификацию? – Sobik

+0

200 & внимательно прочитайте мой вопрос и последний комментарий – Abbas

Смежные вопросы