springboot应用跳过shiro拦截直接访问服务器上的文件资源
场景简述:从本地向远程服务器写入文件后,点直接查看会自动跳到登录页!除非系统登录状态才能访问到。
思考分析:远程linux服务器是阿里云的,不能用ip+物理路径直接访问,因为阿里云做了很多安全拦截。只能通过服务器开放的端口号来访问,而端口号又被应用占用。所以就成了通过应用来访问服务器上的资源。 而应用是springboot+shrio框架,shrio做了访问路径拦截。虽然地址能请求到资源,但是被shiro拦截到后直接跳到登录页了。 所以shiro要放行请求地址
实现过程:
1.进入WebMvcConfig配置类中重写方法
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/virtualUploadPath/**") //加入了一个shiro拦截的key
.addResourceLocations(“file:/dophystatic/files/”); //是服务器上存放文件的外挂路径
}
2. 在ShiroConfig中加入 virtualUploadPath, anon代表放行
这样以后请求路径中含有/virtualUploadPath都能放行,不会再受/login的拦截。