shiro前后端分离ajax请求头,spring boot 整合shiro 前后端分离跨域请求配置

Shiro配置如下

@Configuration

public class ShiroConfig {

// 创建web安全管理器

@Bean

public DefaultWebSecurityManager getDefaultWebSecurityManager(CustomRealm realm) {

DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();

// 设置自定义Realm

defaultWebSecurityManager.setRealm(realm);

return defaultWebSecurityManager;

}

// 配置url过滤器

@Bean

public ShiroFilterChainDefinition shiroFilterChainDefinition() {

DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();

// 静态资源直接访问

chainDefinition.addPathDefinition("/*.html","anon");

chainDefinition.addPathDefinition("/css/*","anon");

chainDefinition.addPathDefinition("/js/*","anon");

chainDefinition.addPathDefinition("/img/*","anon");

//

// // 登录注册页直接访问

chainDefinition.addPathDefinition("/user/*", "anon");

//

// // 只有登录或者勾选记住密码的用户才能访问

chainDefinition.addPathDefinition("/**", "authc");

return chainDefinition;

}

// 前后端分离,解决跨域请求过滤器,

@Bean

public FilterRegistrationBean corsFilter() {

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

CorsConfiguration config = new CorsConfiguration();

// #允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Origin

config.addAllowedOrigin("*");

// #允许访问的头信息,*表示全部

config.addAllowedHeader("*");

// 允许提交请求的方法,*表示全部允许

config.addAllowedMethod("*");

// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了

config.setMaxAge(18000L);

// 允许cookies跨域

config.setAllowCredentials(true);

source.registerCorsConfiguration("/**", config);

FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));

// 设置监听器的优先级,设置最高

bean.setOrder(0);

return bean;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值