当前位置: 首页 > news >正文

泉州市网站制作企业wordpress中英双语选择

泉州市网站制作企业,wordpress中英双语选择,网站开发需要什么,电子政务网站建设出版社用户类 优化用户主要是要解决用户的连接量。已经对用户的访问速度和吞吐量。 预初始化 在前面的带面中提出来了用户的预初始化。这里就不在贴出来了。下面将redis用户库连接池处理贴出来UserJedisPoolManager public class UserJedisPoolManager extends BasicModule{private s… 用户类 优化用户主要是要解决用户的连接量。已经对用户的访问速度和吞吐量。 预初始化 在前面的带面中提出来了用户的预初始化。这里就不在贴出来了。下面将redis用户库连接池处理贴出来UserJedisPoolManager public class UserJedisPoolManager extends BasicModule{private static final Logger log LoggerFactory.getLogger(UserJedisPoolManager.class);private static final String OF_ALL_USER select username, encryptedPassword, name, email, moblie, creationDate, modificationDate from ofuser;private static final String OF_USER_VCARD select username, vcard from ofvcard;private static final String OF_PRESENCE select username, offlinePresence, offlineDate from ofPresence;//private static final String REDIS_USER REDIS_USER;private static final Integer timeout 1000*10;private static final int maxActive 5000 * 10;private static final int maxIdle 50;private static final long maxWait (1000 * 100);private static JedisPool pool;private static XMPPServer loaclserver;private static JedisPoolConfig configs;public UserJedisPoolManager() {super(User redis manager);}private static JedisPoolConfig createConfig() {configs new JedisPoolConfig();configs.setMaxActive(maxActive);configs.setMaxIdle(maxIdle);configs.setMaxWait(maxWait);configs.setTestOnBorrow(false);return configs;}private void createJedisPool() {RedisConfig redisConfig loaclserver.getJedisConfDao().getRedisConfig(REDIS_USER);if (redisConfig ! null) { ,auto: redisConfig.getAuto());System.out.println(redisConfig.getAuto() .equals() );pool new JedisPool(createConfig(), redisConfig.getIp(), Integer.valueOf(redisConfig.getPort().trim()), timeout, redisConfig.getAuto().equals() ? null : redisConfig.getAuto());Jedis jedis pool.getResource();jedis.select(0);if(!jedis.exists(OFUSER:admin)) {DefaultAuthProvider dup new DefaultAuthProvider();try {String password dup.getPassword(admin);password AuthFactory.encryptPassword(password);MapString, String map new HashMapString, String();map.put(NAME, admin);map.put(PASSWORD, password);map.put(CREATIONDATE, 0);map.put(MODIFICATIONDATE, 0);jedis.hmset(OFUSER:admin, map);} catch (UserNotFoundException e) {e.printStackTrace();}finally{pool.returnResource(jedis);} }}}private void poolInit() {createJedisPool();}public Jedis getJedis() {if (pool null){poolInit();}Jedis jedis pool.getResource();jedis.select(0);return jedis;}public void returnRes(Jedis jedis) {pool.returnResource(jedis);}Overridepublic void initialize(XMPPServer server) {super.initialize(server);loaclserver server;poolInit();log.info(UserManager By Redis: start init....);}public CollectionUser getAllUser() {CollectionUser users new ArrayListUser();PreparedStatement pstmt null;Connection con null;ResultSet rs null;try {con (Connection) DbConnectionManager.getConnection();pstmt con.prepareStatement(OF_ALL_USER);rs pstmt.executeQuery();while(rs.next()) {User user new User();user.setUsername(rs.getString(1));user.setPassword(rs.getString(2));user.setName(rs.getString(3));user.setEmail(rs.getString(4));user.setMoblie(rs.getString(5));user.setCreationDate(rs.getString(6));user.setModificationDate(rs.getString(7));users.add(user);}}catch (Exception e) {log.info( e.getMessage());e.printStackTrace();}finally {DbConnectionManager.closeConnection(pstmt, con);}return users;}public CollectionUserVcard getUserVcard() {CollectionUserVcard userVcards new ArrayListUserVcard();PreparedStatement pstmt null;Connection con null;ResultSet rs null;try {con (Connection) DbConnectionManager.getConnection();pstmt con.prepareStatement(OF_USER_VCARD);rs pstmt.executeQuery();while(rs.next()) {UserVcard user new UserVcard();user.setUsername(rs.getString(1));user.setVcard(rs.getString(2));userVcards.add(user);}}catch (Exception e) {log.info( e.getMessage());e.printStackTrace();}finally {DbConnectionManager.closeConnection(pstmt, con);}return userVcards;}public CollectionPresence getPresences() {......} }在上面createJedisPool方法中预置了管理员的账号。这是因为我们需要修改openfire的用户认证dao。也就是说web控制台的管理员。在登陆web页面的时候我们认证也是先走redis验证的。 用户认证 用户认证首先需要重新实现AuthProvider。Openfire当中默认使用的是DefaultAuthProvider来操作数据层。当然他也提供了其他的方式实现接口比如HybridAuthProvider、JDBCAuthProvider、NativeAuthProvider、POP3AuthProvider等。 写完AuthProvider的Redis实现后接下来需要基于Redis的用户DAO。 下面是两个类的源码清单 RedisAuthProvider public class RedisAuthProvider implements AuthProvider{private static final Logger log LoggerFactory.getLogger(RedisAuthProvider.class);private static HmThreadPool threadPool new HmThreadPool(3);......Overridepublic void authenticate(String username, String password)throws UnauthorizedException, ConnectionException,InternalUnauthenticatedException {......}Overridepublic void authenticate(String username, String token, String digest)throws UnauthorizedException, ConnectionException,InternalUnauthenticatedException {......}Overridepublic String getPassword(String username) throws UserNotFoundException,UnsupportedOperationException {Jedis jedis XMPPServer.getInstance().getUserJedis().getJedis();try {String pw jedis.hmget(OFUSER: username, PASSWORD).get(0);if (pw null) {String userid jedis.get(MOBILE: username);pw jedis.hmget(OFUSER: userid, PASSWORD).get(0);}return AuthFactory.decryptPassword(pw);} finally {XMPPServer.getInstance().getUserJedis().returnRes(jedis);}}Overridepublic void setPassword(String username, String password)throws UserNotFoundException, UnsupportedOperationException {Jedis jedis XMPPServer.getInstance().getUserJedis().getJedis();try {password AuthFactory.encryptPassword(password);jedis.hset(OFUSER: username, PASSWORD, password);} finally {XMPPServer.getInstance().getUserJedis().returnRes(jedis);}threadPool.execute(createTask(XMPPServer.getInstance().getJedisConfDao().getAuthProvider(), username, password));}Overridepublic boolean supportsPasswordRetrieval() {// TODO Auto-generated method stubreturn true;}private static final String UPDATE_PASSWORD UPDATE ofUser SET encryptedPassword? WHERE username?;private Runnable createTask(final AuthProvider edp, final String username, final String password) { return new Runnable() { public void run() {try {//edp.setPassword(username, password);Connection con null;PreparedStatement pstmt null;try {con DbConnectionManager.getConnection();pstmt con.prepareStatement(UPDATE_PASSWORD);if (password null) {pstmt.setNull(1, Types.VARCHAR);}else {pstmt.setString(1, password);}pstmt.setString(2, username);pstmt.executeUpdate();}catch (SQLException sqle) {throw new UserNotFoundException(sqle);}finally {DbConnectionManager.closeConnection(pstmt, con);}} catch (UserNotFoundException e) {log.info(UserNotFoundException: username);}} }; } }用户认证写完后要记得修改系统属性表ofProperty provider.auth.className org.jivesoftware.util.redis.expand.RedisAuthProvider RedisUserProvider public class RedisUserProvider implements UserProvider{ ......public User loadUser(String username) throws UserNotFoundException {if(username.contains()) {if (!XMPPServer.getInstance().isLocal(new JID(username))) {throw new UserNotFoundException(Cannot load user of remote server: username);}username username.substring(0,username.lastIndexOf());}Jedis jedis XMPPServer.getInstance().getUserJedis().getJedis();try {MapString, String map jedis.hgetAll(OFUSER: username);String usernames username;if (map.isEmpty()) {String userid jedis.get(OFUSER: username);map jedis.hgetAll(OFUSER: userid);if (map.isEmpty()) {return XMPPServer.getInstance().getJedisConfDao().getUserProvider().loadUser(username);}usernames userid;}String name map.get(NAME);String email map.get(EMAIL);String mobile map.get(MOBILE);String creationDate map.get(CREATIONDATE);String modificationDate map.get(MODIFICATIONDATE);User user new User(usernames, name, email, mobile, new Date(Long.parseLong(creationDate.equals(0)||creationDate.equals() ? StringUtils.dateToMillis(new Date()) : creationDate)), new Date(Long.parseLong(modificationDate.equals(0)||modificationDate.equals() ? StringUtils.dateToMillis(new Date()) : modificationDate)));return user;} finally {XMPPServer.getInstance().getUserJedis().returnRes(jedis);}}public User createUser(String username, String password, String name, String email)throws UserAlreadyExistsException{return createUser(username, password, name, email, null);}public User createUser(String username, String password, String name, String email, String moblie)throws UserAlreadyExistsException{try {loadUser(username);// The user already exists since no exception, so:throw new UserAlreadyExistsException(Username username already exists);}catch (UserNotFoundException unfe) {Jedis jedis XMPPServer.getInstance().getUserJedis().getJedis();MapString, String hash new HashMapString, String();password AuthFactory.encryptPassword(password);hash.put(PASSWORD, password);if (name ! null !.equals(name))hash.put(NAME, name);if (email ! null !.equals(email)) hash.put(EMAIL, email);if (moblie ! null !.equals(moblie)) hash.put(MOBILE, moblie);Date now new Date();hash.put(CREATIONDATE, StringUtils.dateToMillis(now));hash.put(MODIFICATIONDATE, StringUtils.dateToMillis(now));try {jedis.hmset(OFUSER: username, hash);} finally {XMPPServer.getInstance().getUserJedis().returnRes(jedis);}threadPool.execute(createTaskAddUser(username, null, password, name, email, moblie));return new User(username, name, email, moblie, now, now);}}private Runnable createTaskAddUser(final String username, final String password, final String encryptedPassword, final String name, final String email, final String moblie) {return new Runnable() {public void run () {.....}};}public void deleteUser(String username) {......}public int getUserCount() {int count 0;Connection con null;PreparedStatement pstmt null;ResultSet rs null;try {con DbConnectionManager.getConnection();pstmt con.prepareStatement(USER_COUNT);rs pstmt.executeQuery();if (rs.next()) {count rs.getInt(1);}}catch (SQLException e) {Log.error(e.getMessage(), e);}finally {DbConnectionManager.closeConnection(rs, pstmt, con);}return count;}public CollectionUser getUsers() {CollectionString usernames getUsernames(0, Integer.MAX_VALUE);return new UserCollection(usernames.toArray(new String[usernames.size()]));}public CollectionString getUsernames() {return getUsernames(0, Integer.MAX_VALUE);}private CollectionString getUsernames(int startIndex, int numResults) {......}public CollectionUser getUsers(int startIndex, int numResults) {CollectionString usernames getUsernames(startIndex, numResults);return new UserCollection(usernames.toArray(new String[usernames.size()]));}public void setName(String username, String name) throws UserNotFoundException {......}public void setEmail(String username, String email) throws UserNotFoundException {......}public void setCreationDate(String username, Date creationDate) throws UserNotFoundException {......}public void setModificationDate(String username, Date modificationDate) throws UserNotFoundException {......}public SetString getSearchFields() throws UnsupportedOperationException {return new LinkedHashSetString(Arrays.asList(Username, Name, Email));}public CollectionUser findUsers(SetString fields, String query) throws UnsupportedOperationException {return findUsers(fields, query, 0, 100);}public CollectionUser findUsers(SetString fields, String query, int startIndex,int numResults) throws UnsupportedOperationException{......}/*** Make sure that Log.isDebugEnabled()true before calling this method.* Twenty elements will be logged in every log line, so for 81-100 elements* five log lines will be generated* param listElements a list of Strings which will be logged */private void LogResults(ListString listElements) {......}Overridepublic void setMoblie(String username, String moblie)throws UserNotFoundException {......} }注意这里有个moblie字段。在原来openfire用户认证表里面是没有这个字段的。这里是本人新加的字段。方便手机登陆。看各自的页面场景啦。 转载于:https://www.cnblogs.com/huwf/p/4273347.html
http://www.huolong8.cn/news/226636/

相关文章:

  • 个人网站制作dwnas怎么做网站服务器
  • 网站建设有名的公司广告策划与营销
  • wordpress国外网站网站导航内链建设
  • 乌市正规网站建设wordpress查看图片插件
  • 站内优化主要从哪些方面进行学生个人网页制作html动态
  • 通过apache建设网站kol合作推广
  • 东莞技术好的网站建设赣州百姓网免费发布信息网
  • 本地网站建设方案信息大全百度网盟推广步骤
  • 1+x数字营销网站建一个网上商城需要多少钱
  • 哔哩哔哩网站怎么做视频软件wordpress增加标签页
  • 做网站维护工商经营范围是什么wordpress全屏博客
  • 做影集的网站或软件下载哪个网站论文多
  • 做公司网站的价格河西做网站的公司
  • 网站制作营销型中国营销
  • 东莞网站建设网站推广中国学校网站前台模板
  • 网站推广方案中确定目标是指关于平面设计的网站
  • 最好的机票网站建设网站备案信息核验单填写
  • 网站的页面设计wordpress页面源代码
  • 自己在网站开发的客户怎么联系招聘系统推广哪家好
  • 昆明建站专家交友免费网站建设
  • asp网站模板下载电子政务服务网站建设
  • 公司网站建设费用的会计分录营销型网站建设目的
  • html5wap网站模板35互联网站建设怎么样
  • 手机免费建网站软件视频网站设计与开发
  • 网站底部留言代码wordpress 性能优化
  • 哪个网站可以学做蛋糕张家界网络
  • 企业网站建设费用怎么记账网站注册用户推广
  • c#网站开发 pdf公司网站域名主机
  • 现在建设网站落后了标书制作图片
  • 成都专业网站建设厂wordpress导航浮动