SVN远程改密码的超简单的java实现java源码下载地址
对于使用VisualSVNServer的免费使用者来说,为方便用户的使用,远程改密是十分必要滴。对于只会java开发的程序员来说,按照以下的步骤即可分分钟实现。
废话少说,请看如下步骤:
1.使用eclipse创建一个常规的java web项目(我的项目名就是SVN)。
2.改密主页面,modifypasswd.jsp页面的编写。

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>修改密码</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">$(function(){$('#Mod').click(function(){var form=$('#Myform').get(0);var formdata={};var elements=form.getElementsByTagName('input');for(var i=0;i<elements.length;i++){formdata[elements[i].name]=elements[i].value;}formdata=$.extend(formdata,{"type":"modifypasswd"});$.post('DoLogin',formdata,function(res){if(res.p_e_code<0){console.info(res);alert(res.p_e_msg);}else{console.info(res);alert("修改成功!");}},'json');});})
</script>
</head>
<body style="background-color: #FFEFDB;"><form id="Myform" ><table width="300"  align="center" style="border:1px;"><tr><th colspan=2>Subversion 密码修改</th></tr><tr><td  style="text-align: right;">用户名:</td><td><input type="text"  name=username></td></tr><tr><td style="text-align: right;">原始密码:</td><td><input type="password"   name=oldpass></td></tr><tr><td style="text-align: right;">最新密码:</td><td><input type="password"  name=newpass></td></tr><tr><td  style="text-align: right;">确认密码:</td><td><input type="password"   name=repeatpass></td></tr><tr><td  style="text-align: center;"><input  id="Mod"  type="button" value="修 改"></td><td  style="text-align: center;"><input id="reUrl"  onclick='javascript:history.back(-1);' type="button" value="返 回"></td></tr></table></form>
</body>
</html>

3.改密业务逻辑实现。
简单说一下原理:

  • 改密的原理就是修改svn的htpasswd.cfg文件,全局的htpasswd文件在你安装的svn
    Repositoies目录下(E:\Repositories\htpasswd)

  • 打开文本可见每一行是一个用户名+密码(用户名:加密方法加密方法加密方法盐密码体(admin:密码体(admin:密码体(admin:apr1qejqejqejGpi1guLHgKEizQnI9qCCK1))

  • 加密只需要调用SVNServer/Bin/openssl.exe,启用命令行,传入用户名、加密方法、盐即可得到。

  • 同理可以取得已经存在的用户名密码做验证原始密码是否正确。

/*** 传入原生密码(未加密的密码)、加密方法、和盐、获得加密后的密码* @param obj_passMethod* @param obj_passSalt* @param obj_user* @return*/public synchronized static String getEncodePasswd(String obj_passMethod,String obj_passSalt,String obj_passwdOri){String reStr=null;try{Runtime run=Runtime.getRuntime();String command="\"E:/VisualSVNServer/bin/openssl.exe\" passwd -"+obj_passMethod+" -salt "+obj_passSalt+" "+obj_passwdOri;Process process=run.exec(command);BufferedReader    bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));String lineTemp=null;StringBuilder sb=new StringBuilder();while ((lineTemp = bufferedReader.readLine()) != null) {sb.append(lineTemp + "\n");}reStr= sb.toString();reStr=reStr.substring(0,reStr.length()-1);}catch(Exception ex){ex.printStackTrace();}return reStr;}

PS:开发小白可别忘了加synchronized同步一下static方法,至于为什么是静态方法,为什么要同步自己去想。

/*** 读入文本内容到List* @param fileName* @return*/public static List<String> readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null;List<String> list=new ArrayList<String>();try {// System.out.println("以行为单位读取文件内容,一次读一整行:");reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;// 一次读入一行,直到读入null为文件结束while ((tempString = reader.readLine()) != null) {list.add(tempString);// 显示行号//System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e1) {e1.printStackTrace();}}}return list;}

4.部署一个tomcat服务器到SVN Server所在的服务器,并上线咱们的java web工程

5.修改你安装的SVN的一个文件,实现内部跳转。我的安装在E盘 E:\VisualSVNServer\WebUI\index.html
添加修改密码 标签,连接地址肯定就是部署到tomcat的这个项目的修改页面地址啦。


6.通过网页访问你的SVN根目录,即可看到“修改密码"链接,点击即可跳转到改密界面。

7.本已提供如此之清晰思路,略有java开发经验的程序员一定可以实现,如果您的技术还不够,可访问https://download.csdn.net/download/xiaoai396/10931466下载源码

SVN远程改密码的超简单的java实现相关推荐

  1. html 记住密码 自动登陆,JavaScript登录记住密码操作(超简单代码)

    废话不多说了,直接给大家贴代码了,具体代码如下所示: 记住密码 记住密码 window.onload = function(){ var oForm = document.getElementById ...

  2. 超简单的java爬虫

    最简单的爬虫,不需要设定代理服务器,不需要设定cookie,不需要http连接池,使用httpget方法,只是为了获取html代码... 好吧,满足这个要求的爬虫应该是最基本的爬虫了.当然这也是做复杂 ...

  3. 004、SVN更新改密码

    1. win7或win8(这里是win8):C:\用户\Administrator\AppData\Roaming\Subversion\auth 2.   winXP:C:\Documents an ...

  4. 天龙八部TLBB系列 - 网单获取数据库密码和服务端密码(超简单)

    往期文章分享 点击跳转=><导航贴>- Unity手册,系统实战学习 点击跳转=><导航贴>- Android手册,重温移动开发 本文约2.1千字,新手阅读需要5分 ...

  5. html5登录页面自动记住密码,html5超简单的localStorage实现记住密码的功能实现

    HTML5 提供了两种在客户端存储数据的新方法: localStorage – 没有时间限制的数据存储 sessionStorage – 针对一个 session 的数据存储 之前,这些都是由 coo ...

  6. 超简单利用java实现小游戏剪刀石头布

    一.如何利用最简单的语句和方法来实现一个小游戏 在剪刀石头布的小游戏中,游戏有三种情况,赢.输.平局,所以我们可以利用这一点,把三种情况罗列出来进行判断. 二.设计想法 一.因为计算机无法利用石头剪刀 ...

  7. 超简单的java短信验证码,神级之作

    阿里云短信使用 -- 拓薪教育 短信猫:所谓短信猫,其实是一种用来收发短信的设备,他和我们用的手机一样,需要手机SIM卡的支持,在需要收发短信的时候,在短信猫里面插入一张我们平时用的手机卡,插上电源, ...

  8. 超简单利用java实现猜数字大小游戏2

    一,继上一次的猜拳游戏也可引生出猜数字的游戏,非常类似,不能说完全相同,可以说九成九相似,不过可玩性强一点. 设计想法: 1.利用随机生成的数与自己输入的数字进行相比较,并且给出相应的提示来进行游戏 ...

  9. (超简单)ESP8266深度睡眠模式下远程采集温湿度信息

    (超简单)ESP8266深度睡眠模式下远程采集温湿度信息 项目背景 相关技术 ESP8266深度睡眠模式 DHT11温湿度采集 MQTT数据收发 Node.js前后端实现 后端 前端 项目背景 自己用 ...

最新文章

  1. 局部变量 final Java_Java局部变量final
  2. 详解C#的数学类,Math,浮点数(上)
  3. JS学习笔记(第五章)(String类型)
  4. codeblock生成64位dll_Pythonnet/clr : Unable to find assembly xxxx.dll
  5. java.util.concurrent.Exchanger应用范例与原理浅析
  6. Thread的join方法使用解析
  7. PowerShell尝试登录SQL Server
  8. 用Android NDK打造自己的toolchain(使用C/C++默认的Makefile)
  9. 前端学习(2057):vue.js的安装方法
  10. OpenCV中基本数据结构(3)_Size
  11. 价值358的emlog定制模板lu1.3
  12. android 选择多选图片
  13. UVA10934 Dropping water balloons【DP】
  14. 计算机组成原理学习四笔记一
  15. 面试题:老师生日分析过程,能否建模用程序解答?
  16. SQL Server 聚合函数 (方差和标准差)
  17. 《电力系统建模理论与方法》(持续更新中)
  18. GLSL内置数学函数部分解析
  19. java获取手机通讯录权限_iOS6 中如何获得通讯录访问权限
  20. Tyrion 中文文档(含示例源码)

热门文章

  1. QSplitter设置比例
  2. MySQL 通过Tcmalloc管理内存
  3. 关于前端架构师的二三事
  4. 数据分析:旅游景点销售门票和消费情况分析
  5. -XX:+PrintGCDetails 打印GC详细信息
  6. java断点续传原理_很简单的Java断点续传实现原理
  7. 有人用python抢到过吗_过年了,用Python抢到回家的车票,so easy!
  8. 戴尔Optiplex-7080装ubuntu16.04双系统时遇到的一些坑
  9. Golang入门项目(家庭收支软件和客户信息管理软件)
  10. linux systemtap java,Systemtap 两个实用的小例子