在我的安全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;允许我登录任何帐户。
为实现这一目标,应该进行哪些编辑?
答案 0 :(得分:1)
这不是一个好主意。
相反,我建议查看切换用户功能:
http://www.disasterarea.co.uk/blog/user-impersonation-with-spring-security/
答案 1 :(得分:0)
您可能不希望以任何编程方式执行此操作。我认为没有理由在你的代码库中有这样的东西。
如果您真的想要为dev提供类似的功能,您只需将所有用户密码更新为您用于开发人员的数据库中的相同值。
您的数据库架构会有所不同,但我的意思是:
更新
schemaname
。ACCOUNT
SETpassword
='someEncrytedString' WHEREUSER_ID
&gt; ='1';
请注意,Spring Security将使用加密字符串,因此您将粘贴加密值而不是明文。
我认为你只想要这个开发者,而我正在考虑使用SwitchUserFilter
更精细的解决方案可能会过度工程化。
我们已经用这种方式做了多年,一切都很好。仅更改密码的优点是其他用户根本不会受到影响,并且损害生产的唯一方法是意外地针对不安全的生产数据库运行查询。在这种情况下,你可能应该得到结果。