java - 不区分大小写检查 HttpServletRequest 中的角色

标签 java servlets https roles user-roles

javax.servlet.http.HttpServletRequest 类有一个名为 isUserInRole 的方法。例如,我用它来检查用户是否具有 admin 角色。但是,该方法区分大小写。因此,如果请求中的角色是 AdminADMIN,则 isUserInRole("admin") 将为 false。我在多个应用程序的多个位置使用 isUserInRole 方法来检查多个不同的角色。

有没有一种方法可以不区分大小写地实现 isUserInRole 功能,而无需使用 isUserInRole 检查每个不同的可能大小写组合?

最佳答案

您可以使用 HttpServletRequestWrapper 实现一个包装请求的过滤器 - 实现您的 HttpServletRequestWrapper 以覆盖 isUserInRole() 方法以使其不区分大小写(例如,配置所有大写的角色,通过转换为大写来测试角色参数)。

快速搜索会发现大量 HTTPServletRequestWrapper 示例...

关于java - 不区分大小写检查 HttpServletRequest 中的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185313/

相关文章:

java - Spring:为什么 "root"应用上下文和 "servlet"应用上下文是不同方创建的?

java - 404错误,请求资源不可用

java - 在 Spring 过滤器中解决多部分/表单数据请求

apache - 将 http 重定向到 https,将 www 重定向到非 www

nginx - certbot-auto/letsencrypt 为指向同一服务器的多个域设置一个 key

iphone - 如何在 Cocoa Touch 中验证网站证书?

java - 授予 Java 应用程序访问特定 Google 电子表格的权限

java - 使用对象的新实例初始化 bean

Java 8集合: filter with function don't work

java - 重构jar包