gpt4 book ai didi

java - 无法使用 Spring Security 配置无状态和有状态 http 部分..?

转载 作者:行者123 更新时间:2023-12-01 11:21:21 26 4
gpt4 key购买 nike

我正在尝试让http-basic(无状态)和http with form-login一起工作,但到目前为止还没有运气。基于this question我想要实现的目标似乎是可能的。 (目前 Spring Security 版本为 3.2.3)。这就是我得到的:

<http pattern="/service/**" create-session="stateless">
<intercept-url pattern="/test/**" access="ROLE_TEST" />
<intercept-url pattern="/remote/**" access="ROLE_REMOTE" />
<http-basic />
</http>

<http>
<intercept-url pattern="/something/**" access="ROLE_STH" />
<intercept-url pattern="/somethignelse/**" access="ROLE_STHELSE" />
<intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<form-login/>
</http>

<authentication-manager alias="authMgrDefault">
<authentication-provider>
<jdbc-user-service
data-source-ref="dataSource"
users-by-username-query="select username, password, is_enabled as enabled
from sys_user
where username = ?"
authorities-by-username-query="select u.username, r.authority
from sys_user u, sys_user_role r
where u.id = r.sys_user_id and u.username = ?" />
</authentication-provider>
</authentication-manager>

使用此配置,只有后者的 http 似乎可以工作(我得到登录页面)。第一个似乎可以自由传递 URL,无需任何身份验证(就像匿名一样)。
我错过了什么..?

最佳答案

拦截 url 模式应该是从上下文根开始的整个路径:

<http pattern="/service/**" create-session="stateless">
<intercept-url pattern="/service/test/**" access="ROLE_TEST" />
<intercept-url pattern="/service/remote/**" access="ROLE_REMOTE" />
<http-basic />
</http>

关于java - 无法使用 Spring Security 配置无状态和有状态 http 部分..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31190956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com