认证base64

发布于 2024-11-08 12:56:33 字数 595 浏览 0 评论 0原文

我正在使用 Spring roo 开发一个应用程序。 作为暗示 Spring 安全性的第一个身份验证测试,我对数据库中的表使用了身份验证。工作正常:

    <authentication-manager alias="authenticationManager">
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource" authorities-by-username-query="select username,authority from users where username=?"/>
        </authentication-provider>
    </authentication-manager>

现在事情变得更具挑战性(对我来说),因为“真实”(在生产环境中)用户表中的密码是加密的,我必须首先使用哈希函数 md5,然后再使用 base64 编码作为 iso 来处理特殊字符。

我必须创建一个自定义 jdbc-user-service。处理这些操作的最佳实践是什么?

I am developping an application with Spring roo.
As a first authentication test implying Spring security I used authentication against a table in my database. That work fine :

    <authentication-manager alias="authenticationManager">
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource" authorities-by-username-query="select username,authority from users where username=?"/>
        </authentication-provider>
    </authentication-manager>

Now things get a little more challenging (for me) because the password in the "real" (in the production env) user table is encrypted, I have to first use the hash function md5 and then the base64 encoding as well as iso to deal with special characters.

I have to create a custom jdbc-user-service. What would be the best practices to deal with those operations ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寻找一个思念的角度 2024-11-15 12:56:33

按照建议,我设法通过身份验证中的 Spring security 构建解决了问题。

我首先将 security-context.xml 的编码设置为 ISO-8859-1,

<?xml version="1.0" encoding="ISO-8859-1"?>

然后使用:

<password-encoder hash="md5" base64="true" ></password-encoder>

As suggested, I managed to solve the problem with Spring security build in authentification.

I had first to set the encoding of the security-context.xml to ISO-8859-1

<?xml version="1.0" encoding="ISO-8859-1"?>

then use :

<password-encoder hash="md5" base64="true" ></password-encoder>
恍梦境° 2024-11-15 12:56:33

要做的第一件事是创建一个自定义密码编码器,这将使我能够更好地控制身份验证过程。

  1. 在applicationContext-Security.xml中

  2. 创建自定义类

    公共类 SnatiPasswordEncoder 实现 PasswordEncoder {

    <前><代码>@Override
    公共字符串encodePassword(字符串arg0,对象arg1)
    抛出数据访问异常 {
    // TODO 自动生成的方法存根
    返回空值;
    }

    @覆盖
    公共布尔 isPasswordValid(字符串 arg0,字符串 arg1,对象 arg2)
    抛出数据访问异常 {
    // TODO 自动生成的方法存根
    返回假;
    }

    /**
    * @参数参数
    */
    公共静态无效主(字符串[] args){
    // TODO 自动生成的方法存根

    }

    }

接下来应该做什么?

The first thing to do is the create a custom password-encoder that will allow me more controle over the authentication process.

  1. In the applicationContext-Security.xml

  2. Create the custom class

    public class SnatiPasswordEncoder implements PasswordEncoder {

    @Override
    public String encodePassword(String arg0, Object arg1)
            throws DataAccessException {
        // TODO Auto-generated method stub
        return null;
    }
    
    @Override
    public boolean isPasswordValid(String arg0, String arg1, Object arg2)
            throws DataAccessException {
        // TODO Auto-generated method stub
        return false;
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
    }
    

    }

What should come next ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文