我在数据库中有一个包含MD5(用户名+密码)的密码字段。我将如何在Spring Security + JdbcAuthentication中实现它。我知道这无论如何都不安全,但它是一个遗留数据库,我必须与之交谈。我目前的代码如下:
_ca.PathError: Certificate file could not be opened. No such file or directory /etc/flocker/plugin.crt
如果我将散列值作为密码发送,则验证有效。我想我必须配置一些密码编码器。
答案 0 :(得分:0)
您可以将整个身份验证配置到applicationContext.xlm中,如下所示:
<sec:authentication-manager>
<sec:authentication-provider>
<sec:password-encoder ref="encoder" /> // And here is an encoder that will encode a password which comes from login form.
<sec:jdbc-user-service data-source-ref="dataSource"
users-by-username-query="your query"
authorities-by-username-query="your query for authentication table" />
</sec:authentication-provider>
</sec:authentication-manager>
我今天在学校试过,它对我有用。我发现解决我的权威问题是最简单的方法,并希望它也适合你。
PS。抱歉,不确定我的答案显示的正确性。只有读者在这里待了大约一年,现在决定加入并自己写一些问题
答案 1 :(得分:0)
我已经采用了hacky方式,并在ServletFilter中重写了Request Parameters。关键是要使用自定义的HttpServletRequestWrapper来修改请求。
现在,用户名+密码作为密码传递给md5编码器。有一些大写/小写的问题,但调整SQL解决了这个问题。
答案 2 :(得分:-1)
你应该这样做
var userManager = new UserManager<ApplicationUser>(userStore);
希望对你有所帮助。