我正在尝试Spring Security&Session和一个棱角分明的前端。当尝试使用响应头登录时,我得到一个200代码:
Set-Cookie: SESSION=NGJlYTkzODQtNTQzMy00NGIxLWEzOWYtYTc2MGNlZWY1OTJm; Path=/; HttpOnly; SameSite=Lax
但在我对服务器的下一个请求中,请求中没有自动设置cookie。顺便说一下,我在开发工具中看不到cookie,所以我认为它没有保存。
我在本地工作的前端和后端。
以下是有关后端的一些信息:
>
使用Spring MongoDb会话@Configuration@EnableMongoHttpSession公共类SessionConfig{}
`@EnableWebSecurity公共类SecurityConfig扩展WebSecurityConfigurerAdapter{private final CustomAuthenticationProvider AuthProvider;
public SecurityConfig(CustomAuthenticationProvider authProvider) {
this.authProvider = authProvider;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors().and()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic(); //todo csrf
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Collections.singletonList("http://localhost:4200")); // todo properties by environment
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "OPTIONS", "DELETE", "PUT", "PATCH"));
configuration.setAllowedHeaders(Arrays.asList("X-Requested-With", "Origin", "Content-Type", "Accept", "Authorization"));
configuration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}`
会话很好地保存在mongodb中,只是没有保存在浏览器中的id。知道吗?
编辑
在httpClient参数中设置observer:“response”
时,我看不到Set-Cookie头:
“cache-control:no-cache,no-store,max-age=0,must-revalidate,content-type:application/json,expires:0,pragma:no-cache”
但在开发人员工具中,我有:
HTTP/1.1 200 vary:Origin:Access-Control-Request-Method vary:Access-Control-Request-Headers access-control-allow-origin:http://localhost:4200 access-control-allow-credentials:true x-content-type-options:nosniff x-xss-protection:1;mode=blockcache-control:no-cache,no-store,max-age=0,must-revalidate pragma:no-cache过期:0 x-frame-options:DENY set-cookie:session=ytewotnknjatzji4ms00zmm2lwexymetyza5nzjhmjayntjh;路径=/;HttpOnly;samesite=lax content-type:application/json transfer-encoding:chunked date:Mon,01 Jul 2019 11:25:08 GMT
问题在角边!我添加了一个拦截器,添加了withCredentials参数,它可以工作。
@Injectable()
export class XhrInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler) {
const xhr = req.clone({
withCredentials: true
});
return next.handle(xhr);
}
}
我在试Spring保安 但是在我对服务器的下一个请求中,没有在请求中自动设置cookie。顺便说一句,我在开发人员工具中看不到cookie,所以我认为它没有保存。 我在当地为前线工作 以下是有关后端的一些信息: > 使用Spring MongoDb会话配置@EnableMongoHttpSession公共类会话配置{} 经典Spring Security配置 `@EnableWebSecurity
我有一个PHP脚本,它成功地返回一些简单的头以及一个set-cookie头,如果在浏览器中直接调用(或由邮递员)。我可以从chrome DevTools上读到这样的响应标题。但是当我用Axios调用它时,set-cookie头就不会显示出来,浏览器中也没有保存cookie。 我尝试了不同的方法,比如在服务器端更改响应头,并在axios中使用“with Credentials:true”,但都不起作
问题内容: 我正在使用Angularjs。当我设置标头时,在Chrome上出现以下错误: 但是,该请求已包含在请求中,并已成功发送到服务器。我似乎已经正确配置了所有内容以允许服务器和客户端上的标头: 对于服务器,我有以下这些: 对于客户,我指定了这些: 为什么会出现此错误? 问题答案: 您从Chrome浏览器中收到该错误,因为根据XHR规范,该方法不应使用禁止的标头名称设置标头。 根据规范: 这些
在postman中,当我向服务器发出请求时,我会得到以下响应头: 如何在Express中查看这些标题?我在之前暂停了这个请求的服务器,但我得到的只有一个标题: 我特别希望看到服务器发送到浏览器的cookie。如何在调试时查看express中的所有响应标头?
即使响应包含ajax请求的“设置cookie”头,cookie也不会存储在浏览器上。 请求代码: 收到的响应标题: 访问控制允许凭据:true 访问控制允许标头:X-request-With、accept、内容类型、Cookie 访问控制允许方法:POST、GET、PUT、OPTIONS、DELETE 访问控制允许来源:http://myapp2.com:7011 访问控制最大年龄:3600 内容
我正在使用swt。浏览器包,允许用户在我的应用程序中使用Facebook登录。但是,当用户登录时,会话/cookie存储在磁盘上。我的目标是删除所有会话/cookie。通过浏览器清除会话。clearSessions()没有帮助,因为Facebook身份验证密钥(或类似密钥)很可能存储为cookie。 在网上和(瘦)文档中搜索了几个小时,我找不到一种方法来清除实例的cookies。 <代码>浏览器。