小编lam*_*bad的帖子

动态更新 Cors 注册表

我在 heroku 上有一个应用程序,它返回一些 oauth 令牌。在我的 Spring Boot 应用程序中,我使用了 WebMvcConfigurerAdapter 从数据库获取来源列表。

return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                String[] origins = new String[originList.size()];
                origins = originList.toArray(origins);
                registry.addMapping("/getToken").allowedHeaders("Allow-access-control-origin").allowedOrigins(origins);
            }
        };
Run Code Online (Sandbox Code Playgroud)

现在,在heroku应用程序中有一个文本区域,用户可以在其中更新其域名,用户可以添加多个域。如果用户想要添加多个域,则域将以逗号分隔并直接放入数据库中。稍后在 corsConfigurer() 方法中,我解析域名并获取所有域名并将其列入白名单。

每次用户更新或添加域时,服务器都会重新启动以包含所有更改。

在 Spring 或 Java EE 中,我可以使 cors 注册表在其白名单注册表中动态添加更新或新插入的源,而无需重新启动服务器。

(我在 SO 上搜索了这个问题,但没有找到任何可接受的答案)

谢谢

java spring spring-mvc cors spring-boot

5
推荐指数
0
解决办法
509
查看次数

Azure 应用程序网关 cookie 可以替换为应用程序 cookie 吗?

我有一个包含多个实例的 VMSS,其中部署了一个 java 应用程序。VMSS 连接到应用程序网关。网关启用了会话亲和性。

是否可以覆盖或告诉网关使用由java应用程序创建的cookie?

我需要它的原因是,当请求到达具有多个参数的应用程序网关时,处理是由java应用程序完成的。此处理会创建用户重定向到的唯一 ID 记录。

当此重定向请求到达应用程序网关时,网关将请求发送到另一台不存在唯一 ID 的服务器,从而引发错误。

我的想法:当请求到达网关并到达java程序时,我创建一个包含一些信息的cookie。cookie 被发回,当请求重定向时,我使用相同的 cookie 来识别服务器。

这可能吗?

我可以使用应用程序 cookie 并告诉应用程序网关使用该 cookie 来识别服务器吗?

azure session-cookies azure-application-gateway azure-vm-scale-set

5
推荐指数
1
解决办法
5506
查看次数

@WebFilter(urlPatterns) 未正确映射 HTTP 请求

我有一个可以写入 JSON 内容的函数@GetMapping(value = "/getToken")

@GetMapping(value = "/getToken")
public String getToken(HttpServletRequest request, HttpServletResponse response, Model model) {
    // jsonObject
    PrintWriter out = response.getWriter();
    out.print(jsonObject);
}
Run Code Online (Sandbox Code Playgroud)

现在,用户可以GET使用如下 URL 向上述映射发出请求:

localhost:8080/getToken?username="username"&password="password"

我还创建了一个名为CORSFilterImplements 的类javax.servlet.Filter,我希望此过滤器仅拦截/getToken请求路径中的那些请求。

@WebFilter(urlPatterns = "/getToken")
public class CORSFilter implements Filter {

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // validate user and password
        chain.doFilter(requestToUse, responseToUse);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我在浏览器中点击localhost:8080localhost:8080/thankyou时,就会调用上面的过滤器。

我怎样才能阻止这个?

我只想在 URL 路径为时调用上面的过滤器 …

java spring servlets servlet-filters spring-boot

2
推荐指数
1
解决办法
4574
查看次数