【发布时间】:2018-09-12 08:23:11
【问题描述】:
我有一个带有 @GetMapping(value = "/getToken") 的函数,它写入 json 内容。
@GetMapping(value = "/getToken")
public String getToken(HttpServletRequest request, HttpServletResponse response, Model model) {
// jsonObject
PrintWriter out = response.getWriter();
out.print(jsonObject);
}
现在,用户可以使用这样的 url 向上述映射发出 GET 请求:
localhost:8080/getToken?username="username"&password="password"
我还创建了一个名为 CORSFilter 的类,它实现了 javax.servlet.Filter,我希望这个过滤器只拦截那些在请求路径中有 /getToken 的请求。
@WebFilter(urlPatterns = "/getToken")
public class CORSFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//validate user and password
chain.doFilter(requestToUse, responseToUse);
}
}
现在,当我在浏览器中点击localhost:8080 或localhost:8080/thankyou 时,就会调用上述过滤器。
我怎样才能阻止这种情况?仅当 url 路径为 localhost:8080/getToken?username="user"&password="pass"
【问题讨论】:
标签: java spring spring-boot servlets servlet-filters