我正在修改Springs优秀安全教程中的oauth2香草样本。oauth2-vanilla将Zuul代理和UI组合成一个应用程序。我想分离Zuul代理和UI。(Zuul代理应充当API网关和多个UI的反向代理)。
当通过zuul代理访问UI时,它应该能够在UI和资源后端之间基于Oauth2进行SSO。
oauth2香草看起来像这样
我想转移到这样的地方:
我已经从网关中移除了ui部分,并为UI添加了一个zuul路由
zuul:
routes:
resource:
url: http://localhost:9000
user:
url: http://localhost:9999/uaa/user
ui:
url: http://localhost:8080
我创建了一个新的UI webapp,它包含带有< code>@EnableOAuth2Sso注释的UI (Angular stuff)。
所以我通过http://localhost:8888(通过zuul代理)。通过UI流进行身份验证和操作后,我可以访问/userendpoint,该endpoint将返回用户。(在调试期间,我看到当我访问/userendpoint时,我有一个带有OAuth2Authentication的HTTP会话。
然而,当我访问/resourceendpoint时,HttpSessionSecurityContextRepository找不到会话,并且无法使用oauth 2身份验证构建上下文。
我用修改后的示例创建了一个git存储库。
我猜网关配置有问题。我已经尝试改变cookie路径,改变代理中的HttpSecurity规则,但是我不能让它工作。
我不明白的是,为什么通过代理访问 UI 时能够很好地解析 /user
endpoint(使用 HTTP 会话和 OAuth2Authentication),但它无法访问 /resource
endpoint。
此外,由于UI现在在/用户界面
上下文中运行,因此我似乎需要在网关中使用以下代码才能加载角度css/js文件。
.antMatchers("/ui/index.html", "/ui/home.html", "ui/css/**", "/ui/js/**").permitAll().anyRequest().authenticated();
我需要用zuul用户界面路由作为前缀似乎也不对。
任何帮助将不胜感激。
我始终无法让@EnableOauthSso工作。相反,我注释为@EnableResourceServer,并为Zuul创建了一个安全配置。
@Configuration
@EnableResourceServer
public class JwtSecurityConfig extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/oauth/**").permitAll()
.antMatchers("/**").hasAuthority("ROLE_API")
.and()
.csrf().disable();
}
}
我有一个SpringBootGateway项目,它使用Zuul将请求路由到内部服务。这些服务是使用Eureka发现的。 这适用于大多数场景。但是,有一些长请求从网关返回。底层服务实际上正在完成请求。并且在该时间期间对网关的请求保持打开。 这两个请求都相当长。其中一个运行一个小流程,大约需要5-10秒。另一个是文件上传。这两个请求都是不返回正文的方法。这会影响祖尔吗? 这是日志中的堆栈跟踪。 以下是
我是SpringCloud的新手,在我的项目(一个使用SpringBoot构建的微服务项目)中,我使用了SpringCloud版本Brixton。RC2,工作正常。但是当我尝试升级到Brixton的时候。发布时,该项目不能与zuul一起工作(如果我直接访问web microservice,它可以工作,但是如果我通过zuul访问,它就不能工作),我没有更改任何配置。maven依赖项是: 有人能说明我
问题内容: 最近,我一直在尝试让Elasticsearch在SSL上可用。这使我处于从apache到nginx到apache到nginx到现在终于回到apache的有趣路线上。 我需要LDAP进行身份验证,这就是为什么我停止使用nginx的原因。我遵循了这个https://gist.github.com/jerrac/0a8bd96e6c42eb84b6f2来配置我的apache网络服务器。好消息
我试图得到一个代理工作与蓝图在OSGi(正在通过Karaf)正确,并通过Gradle构建。 我的蓝图文件(名字已经改变,以保护无辜): 我对此感到非常困惑,因为它在抱怨Camel上下文中的标记。我在其他地方使用了完全相同的语法(只是一个不同的包),没有问题。 最后一个“错误”是: RuntimeException:放弃等待服务(ObjectClass=org.apache.camel.CamelC
有一个简单的代理: 预过滤器: 和属性: 总的来说,一切正常。 但是代理发送的网页具有以下链接 必须采用如下形式: 如何配置服务器以发送正确的链接? 案例: 1.直接从Internet访问myserver时,例如: 服务器发送带有如下链接的页面: 2.从Internet访问代理时,如: 代理服务器发送带有以下链接的页面:
问题内容: 简短,简单的介绍了出色的Python 请求模块。 我似乎在文档中找不到变量“代理”应包含的内容。当我发送带有标准“ IP:PORT”值的字典时,它拒绝要求2个值。所以,我猜(因为文档中似乎没有涵盖),第一个值是ip,第二个值是端口? 文档只提到了这一点: 代理–(可选)字典到代理URL的映射协议。 所以我尝试了这个……我该怎么办? 在将它们放入字典之前,我应该将它们转换为某种类型吗?