Search code examples
javaspring-securityspring-oauth2

WARNING: Encoded password does not look like BCrypt


Controller class method:

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

spring-security configuration:

<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>

Error:

Your login attempt was not successful, try again.

Reason: Bad credentials.

Appreciate any response.


Solution

  • Solution

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

    Comment

    admin@123 equivalent to $2a$10$hbxecwitQQ.dDT4JOFzQAulNySFwEpaFLw38jda6Td.Y/cOiRzDFu this encoded password. So, In password text give admin@123.

    class for converting Encode Value

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

    Generating Encoded values.