gpt4 book ai didi

java - 设置一种方法不受Spring Security的保护

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:12 25 4
gpt4 key购买 nike

我有一个总体上受到保护的 Controller ,但除了一种方法我不想保护整个 Controller

@RestController
@RequestMapping(value = "/api/")
@Secured("ROLE_ADMIN")
public class RestApiController {
@Autowired CategoryService categoryService;
@Autowired BrandService brandService;

@RequestMapping(value = "category/{id}")
public Category category(@PathVariable("id") Integer id){
return categoryService.getById(id);
}

@RequestMapping(value = "brand/{id}")
public Brand brand(@PathVariable("id") Integer id){
return brandService.getById(id);
}

@RequestMapping(value = "login")
public String login(){
return "";
}
}

我需要的是将登录设置为对每个人以及未登录的用户都可用,是否可以实现?

否则我必须在每个方法上都设置它,这会很烦人,这个 Controller 将实现大约 70 个方法,我只需要让每个人都可以访问方法登录。

我在 4.0.0 版中使用 Spring MVC 和 Spring Security

感谢 Sarfaraz:XML 有效,其他解决方案无效

最佳答案

一种方法是在 xml 中配置您的 http 安全性。以下是一个示例

<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/" access="hasRole('ROLE_USER')" />
<security:intercept-url pattern="/api/login" access="permitAll" />
</security:http>

您可以尝试的另一件事是使用 permitAll 放置安全注释,但我不太确定 xml 配置是否适合我。

 @Secured("permitAll")
@RequestMapping(value = "login")
public String login(){
return "";
}

关于java - 设置一种方法不受Spring Security的保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30956641/

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