Spring安全用户身份验证的主密码

时间:2016-02-01 20:29:35

标签: java spring authentication spring-security passwords

在我的安全xml文件中

<authentication-manager>
        <authentication-provider>
            <password-encoder hash="sha-256" />
            <jdbc-user-service data-source-ref="dataSource"
                users-by-username-query="select email,password, 'true' as enabled from users where lower(email)=lower(?) and activestatus='1' "
                authorities-by-username-query="select u.entityid,e.entityname from entity e, users u where e.entityid = u.entityid and lower(u.email)=lower(?) and u.activeStatus='1';" />
        </authentication-provider>
    </authentication-manager>

我想创建一个主密码;让我们说&#34;密码123&#34;允许我登录任何帐户。

为实现这一目标,应该进行哪些编辑?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可能不希望以任何编程方式执行此操作。我认为没有理由在你的代码库中有这样的东西。

如果您真的想要为dev提供类似的功能,您只需将所有用户密码更新为您用于开发人员的数据库中的相同值。

您的数据库架构会有所不同,但我的意思是:

  

更新schemanameACCOUNT SET password ='someEncrytedString'   WHERE USER_ID&gt; ='1';

请注意,Spring Security将使用加密字符串,因此您将粘贴加密值而不是明文。

我认为你只想要这个开发者,而我正在考虑使用SwitchUserFilter更精细的解决方案可能会过度工程化。

我们已经用这种方式做了多年,一切都很好。仅更改密码的优点是其他用户根本不会受到影响,并且损害生产的唯一方法是意外地针对不安全的生产数据库运行查询。在这种情况下,你可能应该得到结果。