控制器类方法:
@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>
错误:
您的登录尝试失败,请重试。
原因:凭据不正确。
感谢任何回应。
答案 0 :(得分:0)
<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);
生成编码值。