关于xxl-job-admin使用中指定账号密码时的坑

在开发中运行定时任务xxl-job-admin时,想改变console控制台登录的账号密码,只能通过修改properties文件中绑定的数据库中xxl_user表中的数据。
xxl-job在初始化数据的时候会自动插入默认admin,123456的账号。
在这里插入图片描述
xxljob使用的登录校验是md5源码如下:

  public ReturnT<String> login(HttpServletRequest request, HttpServletResponse response, String username, String password, boolean ifRemember){

        // param
        if (username==null || username.trim().length()==0 || password==null || password.trim().length()==0){
            return new ReturnT<String>(500, I18nUtil.getString("login_param_empty"));
        }

        // valid passowrd
        XxlJobUser xxlJobUser = xxlJobUserDao.loadByUserName(username);
        if (xxlJobUser == null) {
            return new ReturnT<String>(500, I18nUtil.getString("login_param_unvalid"));
        }
        String passwordMd5 = DigestUtils.md5DigestAsHex(password.getBytes());
        if (!passwordMd5.equals(xxlJobUser.getPassword())) {
            return new ReturnT<String>(500, I18nUtil.getString("login_param_unvalid"));
        }

        String loginToken = makeToken(xxlJobUser);

        // do login
        CookieUtil.set(response, LOGIN_IDENTITY_KEY, loginToken, ifRemember);
        return ReturnT.SUCCESS;
    }

由于md5是摘要算法,不可逆向的,每次登录时需要把密码通过相同的md5加密后对比数据库是否一致,所以想修改密码只能修改数据库字段值,将新密码通过DigestUtils.md5DigestAsHex(password.getBytes()) 加密后然后修改到数据库。

  • 坑来了:
    如果修改的新密码在加密前超过18位的话,仍然会登录失败,原因是xxljob服务前端对输入框输入的密码做了截取,只保留了18位传到后端,因此会导致输入正确的密码后仍然登录失败。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用xxl-job来实现分布式任务调度可以分为以下几个步骤: 1. 集成xxl-job 在pom.xml文件添加xxl-job-core依赖: ```xml <dependency> <groupId>com.xxl-job</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.0</version> </dependency> ``` 2. 配置xxl-job 在application.yml文件添加xxl-job的配置: ```yaml xxl: job: # 调度心配置 admin: addresses: http://localhost:8080/xxl-job-admin accessToken: # 执行器配置 executor: appname: executor-demo address: localhost:9999 ip: port: 9999 accessToken: logPath: /data/applogs/xxl-job/jobhandler logRetentionDays: 30 ``` 其,调度心地址为http://localhost:8080/xxl-job-admin,执行器地址为localhost:9999。 3. 创建任务 在Spring Boot应用创建任务需要遵循以下规则: 1. 使用@XxlJob注解标注任务方法; 2. 方法必须是public修饰符、void返回类型、只有一个JobParameter参数; 3. 方法名称可以自定义,但是需要保证在同一个执行器唯一。 示例代码如下: ```java @Service public class DemoJobHandler { @XxlJob("demoJobHandler") public void demoJobHandler(JobParameter param) throws Exception { // 业务逻辑 } } ``` 4. 启动任务执行器 在Spring Boot应用启动任务执行器需要在启动类上添加@EnableXxlJob注解,并且实现XxlJobSpringExecutorConfigurer接口: ```java @SpringBootApplication @EnableXxlJob public class Application implements XxlJobSpringExecutorConfigurer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void configureXxlJobExecutor(XxlJobSpringExecutor executor) { executor.setAppname("executor-demo"); executor.setAddress("localhost:9999"); executor.setIp(null); executor.setPort(9999); executor.setLogPath("/data/applogs/xxl-job/jobhandler"); executor.setLogRetentionDays(30); } } ``` 5. 登录xxl-job调度心 在浏览器输入http://localhost:8080/xxl-job-admin使用默认账号密码admin/123456登录xxl-job调度心。 6. 创建任务 在xxl-job调度创建任务,填写任务信息、执行器信息、调度策略和触发器信息,最后保存并启动任务即可。 以上就是使用xxl-job实现分布式任务调度的详细步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值