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

Spring Boot令牌身份验证

呼延修然
2023-03-14
    null

共有1个答案

强志学
2023-03-14

我使用spring-boot-starter-parent版本1.5.7.release。

我的方法不是一个完全的解决办法,但它可能会帮助你。

您将能够发送用户/密码,并获得一个会话cookie,然后可以继续使用。

    null
      <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session</artifactId>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
      </dependency> 

添加一个扩展WebSecurityConfigurerAdapter的类。您可能已经有了:

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true) // enable method-level authorization (@PreAuthorize("expression"))
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
     @Autowired
     public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("user").password("user").roles("USER").and()
                .withUser("admin").password("admin").roles("USER", "ADMIN");
     }

     @Override
     protected void configure(HttpSecurity http) throws Exception {
     http.authorizeRequests()
          .anyRequest().hasAnyRole("USER", "ADMIN").anyRequest().authenticated()
          .and()
          .httpBasic().disable();
  http
          .csrf().disable()
          .and()
          .formLogin()
          .usernameParameter("j_username")
          .passwordParameter("j_password")
          .loginPage("/login.html")
          .loginProcessingUrl("/j_spring_security_check")
          .defaultSuccessUrl("/#")
          .failureUrl("/loginNotSuccessfull.html")
          .permitAll();
}

我还有一个redis服务器作为HTTP会话存储(我刚刚使用redis:4-Alpine映像和--protected-mode no--net=host启动了一个docker容器。)在Application.properties中具有以下属性:

spring.session.store-type=redis
spring.redis.host=localhost
spring.redis.port=6379

为了使其正常工作,我还包含了一个HTTPSessionConfig类来启用redis HTTP会话:

@EnableRedisHttpSession
public class HttpSessionConfig {

}
 类似资料:
  • 我有一个LaravelAPI(实际上是LumenAPI)服务于VueJS前端。Vue应用程序允许用户登录到谷歌。然后将Google令牌发送回Lumen API,后者使用Google验证令牌,然后验证电子邮件地址是否为有效用户。然后它生成一个令牌,与用户一起存储在数据库中,并返回用户对象。 我没有使用Passport或jwt auth之类的东西。那么现在,我如何使用默认的Auth中间件来验证(现在已

  • 我刚刚开始在.NET中开发我的第一个REST API。由于它将是无状态的,我将使用令牌进行身份验证: 基本思想(System.Security.Cryptography): null 检查凭据是否有效(用户名,将哈希密码与db值进行比较) 如果为真,则加密数据对象 对生成的令牌使用HMAC,并将其存储到数据库 将令牌(不带HMAC)返回给用户(cookie/字符串) 对需要身份验证的方法的请求:

  • 我正在尝试在Dropwizard web应用程序中实现OAuth2身份验证。我已经创建了所需的<code>验证器 我所需的行为是,在我的客户端通过在我的登录页面上提供他/她的凭据登录后,我想将客户端重定向到我使用Dropwizard Views创建的问候语页面,并且路径为“/me”,如下所示: 我的问候资源如下所示: 目前,我得到一个“访问此资源需要凭据。”登录后的响应。在阅读了一些关于令牌认证的

  • 在传统的基于cookie/JSESSION的身份验证的同时,是否可以使用基于令牌的(无状态)身份验证? 应用程序已经有一个现有的Spring MVC+Thymeleaf实现,用作管理/超级用户门户。当你登录时,你会得到一个JessionID。我们需要使用Jersey(JAX-RS)创建一个RESTful API以供客户端使用。要求是无状态的。本质上,我们仍然需要Spring MVC+Thymele

  • 我有一个REST Jersey web服务。 php中基于令牌的身份验证 它在答复中提到; “然后它发送此令牌和请求的某些特征的哈希来验证请求,例如sha1(令牌+时间戳+请求URL+请求正文)。您的服务器可以对此进行验证,而客户端不必在每个请求上以纯文本发送令牌。” 另一个问题是,一旦服务器接收到这个令牌的哈希值(包括时间戳和用户ID等),服务器如何在没有存储令牌的查找表或数据库的情况下从这个令

  • 有人在springboot应用程序中找到了这样的工作示例吗? /auth控制器,用户在其中提供ActiveDirectory凭据(通过基本身份验证或POST json)并在提供有效AD凭据的情况下接收JWT令牌。不应涉及LDIF文件,Springboot应用程序将根据ldaps://ActiveDirectoryhost: 636endpoint验证凭据 /myapi控制器仅在步骤1(上图)中的有