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

Spring Security身份验证成功,密码错误

汪玮
2023-03-14

我的网站安全配置如下;

@EnableWebSecurity
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder builder) throws Exception {
        builder.inMemoryAuthentication().withUser("hellouser")
                .password("hellopass").roles("USER");
    }
}

当我给出错误的用户名时,身份验证会按预期失败。但是,如果我一次验证成功,之后所有密码错误但用户名正确的请求都会成功验证。。。。

它被缓存在什么地方了吗?

我可以禁用此功能吗?

难道它不应该给出错误密码的身份验证失败吗?

注意:我正在学习Spring安全。我没有任何HTML页面在这个应用程序和测试从邮递员。

共有2个答案

步胜
2023-03-14

即使使用错误的凭据,我也可以使用postman的基本身份验证从下面的配置访问url。这是因为一旦您提供了正确的凭据,这些凭据就会存储在会话中,即使您重复相同的请求,也会使用相同的会话来访问url。

http.httpBasic().and().authorizeRequests().antMatchers("/secure/admin/**").hasRole("ADMIN").antMatchers("/api/**","/secure/getUserByName/**").hasAnyRole("USER","ADMIN").anyRequest().fullyAuthenticated();

解决方案:

http.session管理()。

只需添加上面的代码。因此,此配置确保一次仅对用户的单个实例进行身份验证。如果同一用户尝试访问url,则其上一个会话将被终止,然后用户必须再次提供创建新会话的登录凭据。

乐正德华
2023-03-14

在配置方法中使用http.sessionManagement()。

 类似资料:
  • 问题内容: 这是我的情况: 一个Web应用程序对许多应用程序执行某种SSO 登录的用户,而不是单击链接,该应用就会向正确的应用发布包含用户信息(名称,pwd [无用],角色)的帖子 我正在其中一个应用程序上实现SpringSecurity以从其功能中受益(会话中的权限,其类提供的方法等) 因此,我需要开发一个 自定义过滤器 -我猜想-能够从请求中检索用户信息,通过自定义 DetailsUserSe

  • 身份验证工作正常,但是,每次我使用错误的密码登录时,我会得到以下异常,而不是密码锁定异常。我认为Spring LDAP在对用户进行身份验证时并没有检查PwdPolicy(计算密码尝试)。 ne=(javax.naming.authenticationexception)javax.naming.authenticationexception:[LDAP:错误代码49-invalid_credent

  • 我制作了一个PDB,我可以通过sys作为sysdba连接到这个PDB,但是我不能连接我自己的普通用户或本地用户。 原因是ORA-01017:密码错误。 在sqlnet.ora中设置之后: 密码以quation标记开始结束,然后生效。 创建用户和登录用户的命令: 为什么?如何将SQLNET.ALLOWED\u LOGON\u VERSION\u SERVER升级到12。我可以设置没有引号的密码吗?

  • 成员身份验证 PDF版下载 OAuth2简介 如流平台提供了OAuth的授权登录方式,可以使如流客户端(移动端或者桌面端内嵌打开)打开的网页获取成员的身份信息,从而免去登录环节。 企业应用中的URL链接(包括自定义菜单或者消息中的链接),均可通过OAuth2.0验证接口来获取成员的身份信息(UserId)。 第一步:构造网页授权链接 获取用户在如流客户端打开应用(或者链接)时的用户身份,如流提供两

  • 我正在使用生成用户密码的强哈希值。我想登录用户,但不想通过网络以明文形式发送密码,如何检查密码是否正确(没有往返),因为它是加盐的? 我有一个客户端/服务器场景。客户端是台式计算机上的应用程序(不是网站,也不是超文本传输协议服务器)。 我怎样才能做到这一点?我只是走了这么远:我正在客户端上生成salt散列,从中形成一个mcf并将其发送到我的服务器。将mcf保存到数据库。我没有发送密码,只发送了实际