当前位置: 首页 > 知识库问答 >
问题:

Spring Security-检查Web url是否安全/受保护

司徒宇
2023-03-14

如果当前请求是安全的,有没有办法“询问”Spring Security性?因为即使我通过了身份验证,我也要检测我是在受安全保护的URL中还是在匿名/公共页面中

提前感谢!

共有3个答案

谷德本
2023-03-14

我们可以将其标记为安全通道,因此转换为https://url。

    <intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" requires-channel="https" />

然后我们可以使用请求。getScheme()来标识它。我使用了org。springframework。安全版本3.1.4。释放

华星剑
2023-03-14

我认为您可以使用自己的实现Access决策Voter,然后只需简单地覆盖Vote方法并使用filterInvocation.getRequest estUrl();方法比较拦截url。

@Override
public int vote(Authentication authentication, FilterInvocation filterInvocation,
    Collection<ConfigAttribute> attributes) {
  String requestUrl = filterInvocation.getRequestUrl();
  ....
}
沃盛
2023-03-14

Spring Security为此提供了JSP标记支持。例如:

<sec:authorize url="/admin">

This content will only be visible to users who are authorized to access the "/admin" URL.

</sec:authorize>

Thymeleaf提供了一种Spring Security方言,它直接支持使用Spring Security性检查URL授权。例如:

<div sec:authorize-url="/admin">
    This will only be displayed if authenticated user can call the "/admin" URL.
</div>

如果您的技术不支持直接执行检查,您可以轻松地使用WebInvocationPrivilegeEvalue ator(这是JSP taglib和Thymeleaf使用的对象)。例如,您可以@AutowireWebInvocationPrivilegeEvalue ator的实例并直接使用它。显然,语法会根据您使用它的位置(即GSP、Freemarker等)而有所不同,但这里是一个直接Java代码的示例。

@Autowired
WebInvocationPrivilegeEvaluator webPrivs;

public void useIt() {
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

    boolean hasAdminAccess = webPrivs.isAllowed("/admin", authentication);

    boolean hasAdminPostAccess = webPrivs.isAllowed(null, "/admin", "POST", authentication);
}
 类似资料:
  • 问题内容: 我正在尝试使用iText的PdfReader来检查给定的PDF文件是否受密码保护,但是却遇到此异常: 线程“主线程”中的异常java.lang.NoClassDefFoundError:org / bouncycastle / asn1 / ASN1OctetString 但是,当针对非密码保护的文件测试相同的代码时,它运行良好。这是完整的代码: 问题答案: 从此处使用Apache P

  • 问题内容: 如标题所述,我想以编程方式检查域的DNS响应是否受DNSSEC保护。 我该怎么办? 如果有Pythonic解决方案,那就太好了。 更新:更改了响应请求,对于您的困惑感到抱歉 问题答案: 使用DNS解析器(例如),您可以查询域的DNSKEY RRset并打开(dnssec OK)查询标志。如果查询成功,则答案将设置(已认证数据)标志,并将包含区域的RRSIG签名(如果已签名)。 更新:使

  • 本文向大家介绍如何使用SpringSecurity保护程序安全,包括了如何使用SpringSecurity保护程序安全的使用技巧和注意事项,需要的朋友参考一下 首先,引入依赖: 引入此依赖之后,你的web程序将拥有以下功能: 所有请求路径都需要认证 不需要特定的角色和权限 没有登录页面,使用HTTP基本身份认证 只有一个用户,名称为user 配置SpringSecurity springsecur

  • 问题内容: 我有以下代码: 一直有人告诉我,不要检查浮点数是否相等。检查是否等于零是否有所不同? 问题答案: 您不应该检查浮点数是否相等的原因是浮点数不够精确- 一些数字在存储中存在一些不准确性,例如那些延伸到尾数太远并且重复小数的数字(请注意,我在说关于在基数2中重复小数)。您可以将这种不精确性视为“四舍五入”。超出浮点数精度的数字将被截断,有效地四舍五入。 如果它没有改变,它将保持平等。但是,

  • 我们正在尝试从传统的Websphere迁移到Liberty配置文件。出现的几个问题之一是,在WAS下,我们使用类com.ibm.ws.security.core。SecurityContext,通过调用isSecurityEnabled()检测服务器的安全性是否已启用。 但是这个类在 Liberty 中找不到,因此会产生错误。它是在功能之一中吗?如果是这样,我不确定如何找到哪一个。如果没有,是否有

  • 通过系统内置规则,将匹配规则的安全性较低的资源扫描出来并按照建议进行处理,从而提高系统安全性的目的。 建议列表 建议列表显示所有匹配优化建议规则的资源列表,用户可根据建议对资源进行处理。 忽略列表 忽略列表显示不需要处理的资源或一类规则建议。 规则配置 规则配置即根据系统内影响资源安全的条件设置相应的规则,如安全组的规则设置等,当资源匹配规则则表示资源的安全性较低,需要用户进行处理等。