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

在Tomcat上使用Spring Boot进行身份验证

孟鹏海
2023-03-14

我正在尝试使spring-boot-starter-securityspring-boot-starter-webspring-boot-starter-tomcat一起工作。我试着按照spring-boot-sample-secure和spring-boot-sample-web-secure中的指南去做,但是我没有让它起作用。

我正在尝试构建一个没有任何ui交互的REST应用程序。因此,我发现这两个样品都不完全适合我的目的。目前我的解决方案是使用AOP。

@Before("execution(* my.zin.rashidi.openshift.tomcat.controller.*.*(..)) && args(authorization, ..)")
public void authenticate(String authorization) {

    if (!isEmpty(authorization)) {
        SecurityContextHolder.getContext().setAuthentication(
                new UsernamePasswordAuthenticationToken("user", "N/A",
                        AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER"))
        );
    }
}
@RequestMapping(method = GET)
public ResponseEntity<User> get(@RequestHeader String authorization, @RequestBody User user) {
    HttpStatus status = OK;
    User returnObject = null;

    try {
        returnObject = service.get(user);
    } catch (AuthenticationCredentialsNotFoundException e) {
        status = UNAUTHORIZED;
    }

    return new ResponseEntity<User>(returnObject, status);
}

解决方案对我有效。然而,我想知道这是否是一个好的解决方案。我很好奇是否有更好的解决办法。

感谢您的帮助!

共有1个答案

白浩荡
2023-03-14

我不想给每个controller方法添加一个可选参数,因为它是可选的,所以遗忘的风险很高。您询问了一个意见,我认为更好的解决方案是使用一种更普通的Spring Security方法和一个过滤器(如果标准的基本身份验证足够好的话,或者可以使用一个自定义的过滤器,比如预身份验证,如果它不能满足您的需要的话)。在Spring Boot应用程序中,您可以直接获得http基本安全性,因此您根本不需要做任何事情来开始。

 类似资料:
  • 我正在尝试使用urllib3连接到网页。代码如下所示。 如果我们假设url是需要使用用户名和密码进行身份验证的某个网页,那么我是否使用正确的代码进行身份验证? 我使用urllib2做这件事很舒服,但使用urllib3做不到同样的事情。 非常感谢

  • jwt不应该仅仅用于认证用户吗?我读到过可以在里面存储非敏感的东西,比如用户ID。将权限级别之类的东西存储在令牌中可以吗?这样我可以避免数据库调用。

  • 我正在使用SpringBoot开发具有微服务架构的Rest Backend。为了保护endpoint,我使用了JWT令牌机制。我正在使用Zuul API网关。 如果请求需要权限(来自JWT的角色),它将被转发到正确的微服务。Zuul api网关的“WebSecurityConfigrerAdapter”如下。 这样,我必须在这个类中编写每个请求授权部分。因此,我希望使用方法级安全性,即“Enabl

  • 问题内容: 我有一个使用Java针对Active Directory进行身份验证的简单任务。只需验证凭据,别无其他。假设我的域是“ fun.xyz.tld”,OU路径未知,并且用户名/密码是testu / testp。 我知道那里有一些Java库可以简化此任务,但是我没有成功实现它们。我发现的大多数示例都是针对LDAP的,而不是针对Active Directory的。发出LDAP请求意味着在其中发

  • 问题内容: 我可以通过接收到请求的xml 但不是 没有JavaScript错误,没有跨域策略问题。可能是语法错误,但是我找不到合适的教程。有什么建议吗? 问题答案: 我认为您需要纯格式:

  • 问题内容: 在我的iOS应用程序中,我想使用WKWebView在应用程序中包装外部URL 。此URL需要基本身份验证(它需要用户和密码凭据,如以下屏幕截图所示)。 经过一番调查,我尝试使用 didReceiveAuthenticationChallengemethod来启用自动 登录,因此我不了解它的工作原理。 这是我的代码。 I’m facing with this exception: If