SpringSercurity踩坑之request.getRequestURI()和request.getRequestURL()
2023-12-29 17:18:43
今天在开发的时候遇到一个小小的问题,我在swagger测试权限的时候,直接跳过了放开的路径,直接进行了角色判断,
.addFilterBefore(new TokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
在这里if判断路径的时候直接跳过了,没有进行进入过滤链
最后找了半天,发现这里的问题是
request.getRequestURI()和request.getRequestURL()
这两个太像了,下面就进行一个简单的说明。
在Java Servlet中,request.getRequestURI()和request.getRequestURL()是用于获取请求信息的两个不同的方法,它们的返回值有一些区别。
request.getRequestURI():
返回请求的URI(Uniform Resource Identifier),即不包括主机名、端口号和查询参数的路径部分。
例如,如果请求的URL是http://example.com:8080/myapp/servletPathparam1=value1,
那么request.getRequestURI()将返回/myapp/servletPath。
request.getRequestURL():
返回包含请求的完整URL,包括协议、主机名、端口号、路径和查询参数。
例如,如果请求的URL是http://example.com:8080/myapp/servletPath?param1=value1,
那么request.getRequestURL()将返回http://example.com:8080/myapp/servletPath。
简而言之,getRequestURI()返回的是请求的相对路径部分,而getRequestURL()返回的是完整的URL,包括主机名和协议等信息。选择使用哪个方法取决于你需要的信息的粒度。如果只关心路径,可以使用getRequestURI();如果需要完整的URL,包括协议和主机名,可以使用getRequestURL()。
文章来源:https://blog.csdn.net/qq_51365907/article/details/135290539
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!