@Configuration
@EnableWebMvc
public class MyWebMvcConfig extends WebMvcConfigurerAdapter {
********some irrelevant configs************
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/*").allowedOrigins("*").allowedMethods("GET", "POST", "OPTIONS", "PUT")
.allowedHeaders("Content-Type", "X-Requested-With", "accept", "Origin", "Access-Control-Request-Method",
"Access-Control-Request-Headers")
.exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Allow-Credentials")
.allowCredentials(true).maxAge(3600);
}
}
@Configuration
@EnableWebSecurity
public class OAuth2SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).and()
.formLogin()
.successHandler(ajaxSuccessHandler)
.failureHandler(ajaxFailureHandler)
.loginProcessingUrl("/authentication")
.passwordParameter("password")
.usernameParameter("username")
.and()
.logout()
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
.logoutUrl("/logout")
.logoutSuccessUrl("/")
.and()
.csrf().disable()
.anonymous().disable()
.authorizeRequests()
.antMatchers("/authentication").permitAll()
.antMatchers("/oauth/token").permitAll()
.antMatchers("/admin/*").access("hasRole('ROLE_ADMIN')")
.antMatchers("/user/*").access("hasRole('ROLE_USER')");
}
}
因此,如果我向安全系统没有侦听的URL发出请求,则设置CORS头。Spring SecurityURL-未设置。
Spring靴1.4.1
您可以编写自己的CorsFilter并将其添加到安全配置中,而不是使用CorsRegistry。
自定义CorsFilter类:
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpServletRequest request= (HttpServletRequest) servletRequest;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET,POST,DELETE,PUT,OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "*");
response.setHeader("Access-Control-Allow-Credentials", true);
response.setHeader("Access-Control-Max-Age", 180);
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
安全配置类:
@Configuration
@EnableWebSecurity
public class OAuth2SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Bean
CorsFilter corsFilter() {
CorsFilter filter = new CorsFilter();
return filter;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.addFilterBefore(corsFilter(), SessionManagementFilter.class) //adds your custom CorsFilter
.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).and()
.formLogin()
.successHandler(ajaxSuccessHandler)
.failureHandler(ajaxFailureHandler)
.loginProcessingUrl("/authentication")
.passwordParameter("password")
.usernameParameter("username")
.and()
.logout()
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
.logoutUrl("/logout")
.logoutSuccessUrl("/")
.and()
.csrf().disable()
.anonymous().disable()
.authorizeRequests()
.antMatchers("/authentication").permitAll()
.antMatchers("/oauth/token").permitAll()
.antMatchers("/admin/*").access("hasRole('ROLE_ADMIN')")
.antMatchers("/user/*").access("hasRole('ROLE_USER')");
}
}
location ~* \.(gif|jpg|png|swf|flv)$ { root html valid_referers none blocked *.uncwd.com; if ($invalid_referer) { rewrite ^/ www.wenjiangs.com #return 404; } } 前面的root可以不要如果你在se
我的Checkmarx报告在我的Spring Boot应用程序中将此方法标记为高严重性二阶SQL注入: 根据Checkmarx: ... 应用程序通过在查询中嵌入不受信任的字符串来构造此SQL查询,而无需进行适当的清理。连接的字符串被提交到数据库,并在数据库中进行相应的分析和执行。 setActive('Y')行似乎是问题所在。 我在Spring Data JPA使用中找到的数据清理指南建议使用从
本文向大家介绍如何防止cookie被盗用?相关面试题,主要包含被问及如何防止cookie被盗用?时的应答技巧和注意事项,需要的朋友参考一下 禁止第三方网站带cookie(same-site属性) 每次请求需要输入图形验证码 使用Token验证 为cookie设置HttpOnly 设置CSP 使用Referer验证 禁止网页内嵌 使用https cookie带上用户ip加密
本文向大家介绍PHP防盗链代码实例,包括了PHP防盗链代码实例的使用技巧和注意事项,需要的朋友参考一下 防盗链是目前非常常见的web程序设计技巧。本文就以一个实例展示了PHP防盗链的实现方法。分享给大家供大家参考之用。具体方法如下: 主要功能代码如下: 希望本文所述对大家学习PHP程序设计有所帮助。
1. 什么是盗链? 百度百科的解释如下: 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。 盗链在如今的互联网世界无处不在,盗图,盗视频、盗文章等等,都是通过获取正规网站的图片、视频、文章等的 ur
13. 视频直播防盗链规则 13.1. 鉴权构造 用户访问加密防盗链 URL 地址构成 http://DomainName/AppName/StreamName?sign=xxxxxxxxx&stTime=xxxxxxx k=md5(“key”+“/AppName/”+“StreamName”+t) 参数 描述 key 后台生成的秘钥 AppName 流所属应用名称 StreamName 流名称