如何将Spring Security身份验证扩展到Zuul

时间:2017-09-03 17:50:52

标签: java spring facebook spring-security netflix-zuul

我有一台Netflix Zuul服务器接收所有HTTP请求并将它们转发到我的微服务。

底层微服务通过Facebook oauth API对用户进行身份验证。我从Facebook API收到用户数据,并以编程方式验证用户:

public Authentication login(String username, String password) {
    UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
    Authentication result = authenticationManager.authenticate(token);
    SecurityContextHolder.getContext().setAuthentication(result);
    return result;
}

在Zuul面前,这不起作用。我认为它在微服务环境中建立会话,但从未将其扩展到Zuul。当请求直接进入微服务时,它可以正常工作。

我做了什么:

我清除了application.properties中的sensitiveHeaders属性: zuul.routes.[SERVICE_NAME].sensitiveHeaders=,但我认为这是相反的。

如何使用Zuul设置会话?

编辑:

我的Zuul配置:

# Zuul proxy
zuul.add-host-header=true
zuul.routes.httpbin.path=/**
zuul.routes.httpbin.serviceId=httpbin
zuul.routes.httbin.sensitiveHeaders=

httpbin.ribbon.listOfServers=http://localhost:8090

ribbon.eureka.enabled=false

0 个答案:

没有答案