SVN远程改密码的超简单的java实现
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实现相关推荐
- html 记住密码 自动登陆,JavaScript登录记住密码操作(超简单代码)
废话不多说了,直接给大家贴代码了,具体代码如下所示: 记住密码 记住密码 window.onload = function(){ var oForm = document.getElementById ...
- 超简单的java爬虫
最简单的爬虫,不需要设定代理服务器,不需要设定cookie,不需要http连接池,使用httpget方法,只是为了获取html代码... 好吧,满足这个要求的爬虫应该是最基本的爬虫了.当然这也是做复杂 ...
- 004、SVN更新改密码
1. win7或win8(这里是win8):C:\用户\Administrator\AppData\Roaming\Subversion\auth 2. winXP:C:\Documents an ...
- 天龙八部TLBB系列 - 网单获取数据库密码和服务端密码(超简单)
往期文章分享 点击跳转=><导航贴>- Unity手册,系统实战学习 点击跳转=><导航贴>- Android手册,重温移动开发 本文约2.1千字,新手阅读需要5分 ...
- html5登录页面自动记住密码,html5超简单的localStorage实现记住密码的功能实现
HTML5 提供了两种在客户端存储数据的新方法: localStorage – 没有时间限制的数据存储 sessionStorage – 针对一个 session 的数据存储 之前,这些都是由 coo ...
- 超简单利用java实现小游戏剪刀石头布
一.如何利用最简单的语句和方法来实现一个小游戏 在剪刀石头布的小游戏中,游戏有三种情况,赢.输.平局,所以我们可以利用这一点,把三种情况罗列出来进行判断. 二.设计想法 一.因为计算机无法利用石头剪刀 ...
- 超简单的java短信验证码,神级之作
阿里云短信使用 -- 拓薪教育 短信猫:所谓短信猫,其实是一种用来收发短信的设备,他和我们用的手机一样,需要手机SIM卡的支持,在需要收发短信的时候,在短信猫里面插入一张我们平时用的手机卡,插上电源, ...
- 超简单利用java实现猜数字大小游戏2
一,继上一次的猜拳游戏也可引生出猜数字的游戏,非常类似,不能说完全相同,可以说九成九相似,不过可玩性强一点. 设计想法: 1.利用随机生成的数与自己输入的数字进行相比较,并且给出相应的提示来进行游戏 ...
- (超简单)ESP8266深度睡眠模式下远程采集温湿度信息
(超简单)ESP8266深度睡眠模式下远程采集温湿度信息 项目背景 相关技术 ESP8266深度睡眠模式 DHT11温湿度采集 MQTT数据收发 Node.js前后端实现 后端 前端 项目背景 自己用 ...
最新文章
- 局部变量 final Java_Java局部变量final
- 详解C#的数学类,Math,浮点数(上)
- JS学习笔记(第五章)(String类型)
- codeblock生成64位dll_Pythonnet/clr : Unable to find assembly xxxx.dll
- java.util.concurrent.Exchanger应用范例与原理浅析
- Thread的join方法使用解析
- PowerShell尝试登录SQL Server
- 用Android NDK打造自己的toolchain(使用C/C++默认的Makefile)
- 前端学习(2057):vue.js的安装方法
- OpenCV中基本数据结构(3)_Size
- 价值358的emlog定制模板lu1.3
- android 选择多选图片
- UVA10934 Dropping water balloons【DP】
- 计算机组成原理学习四笔记一
- 面试题:老师生日分析过程,能否建模用程序解答?
- SQL Server 聚合函数 (方差和标准差)
- 《电力系统建模理论与方法》(持续更新中)
- GLSL内置数学函数部分解析
- java获取手机通讯录权限_iOS6 中如何获得通讯录访问权限
- Tyrion 中文文档(含示例源码)
热门文章
- QSplitter设置比例
- MySQL 通过Tcmalloc管理内存
- 关于前端架构师的二三事
- 数据分析:旅游景点销售门票和消费情况分析
- -XX:+PrintGCDetails 打印GC详细信息
- java断点续传原理_很简单的Java断点续传实现原理
- 有人用python抢到过吗_过年了,用Python抢到回家的车票,so easy!
- 戴尔Optiplex-7080装ubuntu16.04双系统时遇到的一些坑
- Golang入门项目(家庭收支软件和客户信息管理软件)
- linux systemtap java,Systemtap 两个实用的小例子