ВНИМАНИЕ: закодированный пароль не похож на BCrypt - PullRequest
0 голосов
/ 15 октября 2018

Метод класса контроллера:

@RequestMapping(value = "/admin", method = RequestMethod.GET)
public String adminPage() {
    return "privatePage";

Конфигурация Spring-Security:

<http auto-config="true">
    <intercept-url pattern="/admin"
        access="hasRole('ROLE_ADMIN')" />
</http>
<authentication-manager>
    <authentication-provider>
        <password-encoder ref="bCryptPasswordEncoder" />
        <user-service>
            <user name="admin" password="passwordEncoder.encode(123456)"
                authorities="hasRole(ROLE_ADMIN,ROLE_USER)" />
        </user-service>
    </authentication-provider>
</authentication-manager>
<beans:bean  id="bCryptPasswordEncoder"     class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
    <beans:constructor-arg value="10" />
</beans:bean>

Ошибка:

Ваша попытка входа не удалась, повторите попытку.

Причина: неверные учетные данные.

Оцените любой ответ.

1 Ответ

0 голосов
/ 16 октября 2018

Решение

<user-service>
            <user name="admin" password="$2a$10$hbxecwitQQ.dDT4JOFzQAulNySFwEpaFLw38jda6Td.Y/cOiRzDFu"
                authorities="ROLE_ADMIN" />
        </user-service>

Комментарий

admin @ 123 эквивалентно $ 2a $ 10 $ hbxecwitQQ.dDT4JOFzQAulNySFwEpaFLw38jda6Td.Y / cOiRzDFu для этого закодированного пароля.Итак, в тексте пароля укажите admin@123.

класс для преобразования значения кодирования

BCryptPasswordEncoder b=new BCryptPasswordEncoder();
String str=b.encode("admin@123");
System.out.println("Encoding "+str);

Генерация закодированных значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...