/*
Copyright (c) [2023] [squallzhao]
fountain is licensed under APACHE LICENSE, VERSION 2.0.
You can use this software according to the terms and conditions of the APACHE LICENSE, VERSION 2.0.
You may obtain a copy of APACHE LICENSE, VERSION 2.0 at: https://www.apache.org/licenses/LICENSE-2.0
*/
package microservice.web.security
import microservice.web.server.filter.*
import std.collection.*
import microservice.web.server.reqres.*
public class CrossOriginFilter <: IFilter{
var urls = HashSet<String>()
public func doFilter(req: HttpServletRequest, res: HttpServletResponse, filterChain: FilterChain): Unit{
if (urls.contains(req.getUri())){
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
res.setHeader("Access-Control-Max-Age", "3600");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, token");
}
filterChain.doFilter(req, res)
}
public func add(url: String){
urls.put(url)
}
}