openfire用户密码修改

Openfire中的用户密码加密方式是采用的是Blowfish

Blowfish是一个64位分组及可变密钥长度的分组密码算法,可用来加密64Bit长度的字符串。算法由两部分组成:密钥扩展和数据加密。

密钥扩展把长度可达到448位的密钥转变成总共4168字节的几个子密钥。

数据加密由一个简单函数迭代16轮,每一轮由密钥相关的置换,密钥相关和明文相关的代替组成。所有的运算都是32位字的加法和异或,仅有的另一个运算是每轮的四个查表。

 

Blowfish算法位于org.jivesoftware.util.Blowfish.java,其中encryptString(String plaintext)加密,encryptString(String text)解密。

 

追溯到调用这个2个方法的地方为,org.jivesoftware.openfire.auth.AuthFactory,其功能为管理整个openfire用户认证,包括客户端和后台管理员用户密码认证。AuthFactory底层连接数据库的类是org.jivesoftware.openfire.auth.DefaultAuthProvider,实现了密码验证,查询密码,设置密码等功能。

其中org.jivesoftware.openfire.handler.IQAuthHandler,验证客户端IQ类型报文(即验证客户端请求上来的登录等操作);

org.jivesoftware.openfire.commands.admin.user.AuthenticateUser,验证后台工具登录。

 

如果需要修改密码加密方式,需要修改AuthFactoryDefaultAuthProvider类,也可以增加一个类如下:

package org.jivesoftware.openfire.auth;

import org.jivesoftware.openfire.user.UserNotFoundException;

public class ZJAuthProvider  implements AuthProvider{

 @Override
 public boolean isPlainSupported() {
  return true;
 }

 @Override
 public boolean isDigestSupported() {
  return true;
 }

 @Override
 public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void authenticate(String username, String token, String digest) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public void setPassword(String username, String password) throws UserNotFoundException, UnsupportedOperationException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public boolean supportsPasswordRetrieval() {
  return true;
 }

 
}

然后修改provider.auth.className的值,openfire默认值是:org.jivesoftware.openfire.auth.DefaultAuthProvider,修改成你的类。

 

 

猜你喜欢

转载自buerkai.iteye.com/blog/1935447