为什么验证授权码模式却弹出basic登录框
来源:6-3 SpringSecurityOAuth核心源码解析
TinyLeon
2018-08-07
老师好:
我想验证授权码模式,我的pom.xml为:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- oauth2 --> <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> </dependency> </dependencies>
启动类为:
@SpringBootApplication
@RestController
public class SecurityApplication {
private final Logger logger = LoggerFactory.getLogger(getClass());
public static void main(String[] args) {
SpringApplication.run(SecurityApplication.class, args);
}
@GetMapping("/test")
public String hello() {
logger.info("in controller");
return "hello spring security";
}
}密码加密配置类为:
@Configuration
public class SecurityConfig {
@Bean
public PasswordEncoder PasswordEncoder() {
return new BCryptPasswordEncoder();
}
}UserdetailService类为
@Component
public class MyUserdetailsService implements UserDetailsService {
@Autowired
private PasswordEncoder passwordEncoder;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// 根据username到数据库中查询用户信息
return new User(username, passwordEncoder.encode("123456"), true, true, true, true,
AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER"));
}
}授权服务器为
@Configuration
@EnableAuthorizationServer
public class ServerConfig {
}资源服务器为:
@Configuration
@EnableResourceServer
public class ResourceConfig {
}然后我想验证授权码登录,请求的URL为:
结果跳出Basic登录的那个弹窗
但是奇怪的是,我可以验证 密码登录模式,并且可以使用它生成的token请求资源服务器的信息,请问老师这个是为什么?
写回答
2回答
-
什么为什么?为什么弹出Basic登录框?因为认证服务器没做任何个性化配置,默认就是Basic认证。
还是为什么可以用密码登录模式?因为你配了UserDetailsService。
30 -
豪学者
2018-08-31
你好,你是怎么解决了?
022018-09-03
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题