小编Tho*_*sch的帖子

Spring Data Rest和Cors

我正在开发一个带有Rest接口和dart前端的Spring Boot应用程序.

XMLHttpRequest确实执行一个完全正确处理的OPTIONS请求.在此之后,发出最终的GET("/ products")请求并失败:

请求的资源上不存在"Access-Control-Allow-Origin"标头.原产地" 的http://本地主机:63343 ",因此没有允许访问.

经过一些调试后,我发现了以下内容:为RepositoryRestHandlerMapping之外的所有子类填充了AbstractHandlerMapping.corsConfiguration.在RepositoryRestHandlerMapping中,没有corsConfiguration在创建时存在/设置,因此它不会被识别为cors路径/资源.
=>没有连接CORS标头
这可能是问题吗?我怎么设置它?

配置类:

@Configuration
public class RestConfiguration extends RepositoryRestMvcConfiguration {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowCredentials(false).allowedOrigins("*").allowedMethods("PUT", "POST", "GET", "OPTIONS", "DELETE").exposedHeaders("Authorization", "Content-Type");
    }

   ...
}
Run Code Online (Sandbox Code Playgroud)

我甚至尝试设置每个注释的Cors:

@CrossOrigin( methods = RequestMethod.GET, allowCredentials = "false")
public interface ProductRepository extends CrudRepository<Product, String> {


}
Run Code Online (Sandbox Code Playgroud)

原始请求标头:

GET /products HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36
Content-Type: application/json
Accept: */*
Referer: …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc cors spring-data-rest

53
推荐指数
4
解决办法
5万
查看次数

Android注释和新的Android数据绑定

当我在gradle构建文件中激活androidannotations apt行时,不再识别数据绑定类.当我只是注释掉"apt ..."行时,一切都会再次编译.

可能是某种程度上android-annotions阻止数据绑定apt被执行?或者执行顺序是否错误?

此致,托马斯

gradle构建时出错:$ gradle clean build

:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidDatabindingLibrary10Rc1Library
:app:prepareComAndroidSupportAppcompatV72300Library
:app:prepareComAndroidSupportCardviewV72300Library
:app:prepareComAndroidSupportDesign2300Library
:app:prepareComAndroidSupportMultidex101Library
:app:prepareComAndroidSupportRecyclerviewV72300Library
:app:prepareComAndroidSupportSupportV42300Library
:app:prepareComJourneyappsZxingAndroidEmbedded302Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
AAPT: /opt/projects/erp/android/inventory-app/app/src/main/res/drawable-mdpi/ic_drawer.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
AAPT: /opt/projects/erp/android/inventory-app/app/src/main/res/drawable-xhdpi/ic_drawer.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
AAPT: /opt/projects/erp/android/inventory-app/app/src/main/res/drawable-hdpi/ic_drawer.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
:app:processDebugManifest
:app:dataBindingLayoutsProcessDebugResources
:app:processDebugResources …
Run Code Online (Sandbox Code Playgroud)

android android-annotations android-databinding

6
推荐指数
1
解决办法
1510
查看次数

Spring zuul代理不接受不记名令牌

我有一个 zuul 代理 ( http://localhost:8765 ) 服务于 angular web 应用程序 ( http://localhost:8080/app )。在 zuul 代理后面还有一个 oauth2 服务器(http://localhost:8899)。

Web 资源代理在http://localhost:8765/web 下,资源代理在http://localhost:8765/api 下。Zuul 代理无需身份验证即可提供静态 Web 资源。因此,第一次身份验证是通过 JSON 调用 (GET /api/user) 完成的,这当然会以 401 失败。

现在我将页面转发到“ http://localhost:8899/uaa/oauth/authorize?response_type=token&client_id=web&redirect_uri=http://localhost:8765/web/index.html ”以进行隐式授权 oauth 2 流程。我现在可以授权 Web 应用程序并转发回我的 Web 应用程序。令牌是 url 的一部分,我可以解析它。

恕我直言,我现在唯一要做的就是将此令牌添加为 Authorization 标头(例如 Authorization:Bearer 2829d5e2-4fbe-4f91-b74d-c99b2fe894a7)。但是 zuul 代理不会按照授权接受这个请求。

我正在使用 spring boot 1.3.2 和 spring cloud Brixton.M4。Zuul 服务器应用程序可以在这里找到,安全配置可以在这里找到

这是我的请求标头:

Accept:application/json
Accept-Encoding:gzip, deflate, sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Authorization:Bearer 2829d5e2-4fbe-4f91-b74d-c99b2fe894a7
Connection:keep-alive
Cookie:XSRF-TOKEN=a6ddea36-e3b7-4f22-b80c-b4c8b6fd7760; JSESSIONID=DAE4649D11386D586A0CF739148E505A; …
Run Code Online (Sandbox Code Playgroud)

spring-security spring-cloud netflix-zuul

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