xuan

Results 5 comments of xuan

相关的请求参数可以发一下吗,谢谢,curl或者截图都可以

需要注意的是Auth的项目没有使用资源服务器的相关配置,即没有使用ResourceServerConfiguration配置资源服务器的相关安全过滤器,@EnableResourceServer是被注释掉的。Auth项目请求地址应该为`http://localhost:10101/oauth/token?grant_type=password`,图片有误,我们很抱歉,将尽快修改。我觉得主要问题应该是出现了Maven的依赖冲突,不同版本之间引入了冲突的过滤器调用链引发了问题,可以尝试maven clean install。你的问题我无法复现,不好意思。

第一个问题中,请求参数的问题可以参考backend-server中的定义的FeignAuthClient类,上述访问中失败的原因是路径错误了,通过网关直接访问路径应该`http://localhost:10101/auth/api/userPermissions`,直接访问的地址为`http://localhost:9091/api/userPermissions`。 第二问题中,我们的后端服务不是资源服务器,如果想在后端服务中使用权限控制的行为,可以尝试使用项目中定义的@PreAuth注解开启鉴权切面。如果想使用资源服务器的中的鉴权功能,需要配置资源服务器(使用@EnableResourceServer和ResourceServerConfigurerAdapter配置资源服务器 )的HttpSecurity,比如下面的例子,将会配置对应的FilterSecurityInterceptor进行权限拦截(其内使用AccessDecisionManager进行判定)。 ```java @Override public void configure(HttpSecurity http) throws Exception { http.csrf().disable() .requestMatchers().antMatchers("/**") .and() .authorizeRequests() .anyRequest().authenticated() .antMatchers("/user/**").hasRole("user") .antMatchers("/admin/**").hasAuthority("ROLE_ADMIN") .antMatchers("/resource/**").access("hasRole('ADMIN') and hasAuthority('ROLE_ADMIN')") ; } ```

哪部分密码,是指客户端的密码吗

如果客户端直接是浏览器之类的,那确实容易泄露客户端的密钥。但是如果客户端也是服务器,比如提供nodejs层,在nodejs服务器中保存客户端的密钥信息,安全性会有所提高,这个关键看客户端的实现方式,因为这些确实是属于客户端持有的的信息。在不允许客户端授权模式的情况下,就算泄漏的客户端密码影响不大,因为还需要用户的授权才能获取到token