itim
4.项目的目录结构图如下:
5.部署至apache-tomcat-6.0.18服务器中
A.配置apache-tomcat-6.0.18运行jre
在apache-tomcat-6.0.18/bin/setclasspath.bat中添加JRE_HOME:
set JRE_HOME="D:\IBM\eclipseDevelopmentPackage\ibm_sdk50\jre"
B.拷贝$APP_SRV_TOP/runtime/com.ibm.ws.admin.client_6.1.0.jar到apache-tomcat-6.0.18/lib中
附录代码
PersonMgr.java
package com.likegene.demo;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Hashtable;
import java.util.ResourceBundle;
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
import com.ibm.itim.apps.ApplicationException;
import com.ibm.itim.apps.InitialPlatformContext;
import com.ibm.itim.apps.PlatformContext;
import com.ibm.itim.apps.Request;
import com.ibm.itim.apps.identity.PersonMO;
import com.ibm.itim.apps.identity.PersonManager;
import
com.ibm.itim.apps.jaas.callback.PlatformCallbackHandler;
import com.ibm.itim.apps.provisioning.PasswordManager;
public class PersonMgr {
static
ResourceBundle rb = ResourceBundle.getBundle("context");
public
Subject getSubject(PlatformContext platform) {
String
itimManager = rb.getString("itimManager");
String
itimManagerPwd = rb.getString("itimManagerPwd");
Subject
subject = null;
try {
PlatformCallbackHandler handler = new
PlatformCallbackHandler(
itimManager,
itimManagerPwd);
handler.setPlatformContext(platform);
LoginContext
lc = new LoginContext("ITIM", handler);
lc.login();
subject =
lc.getSubject();
}
catch
(LoginException e) {
e.printStackTrace();
}
return
subject;
}
public
PlatformContext getPlatform() {
String
platformContextFactory = rb.getString("contextFactory");
String
ejbUser = rb.getString("ejbUser");
String
appServerURL = rb.getString("appServerURL");
String
ejbPwd = rb.getString("ejbPwd");
Hashtable<String, String> env = new
Hashtable<String, String>();
env.put(InitialPlatformContext.CONTEXT_FACTORY,
platformContextFactory);
env.put(PlatformContext.PLATFORM_URL, appServerURL);
env.put(PlatformContext.PLATFORM_PRINCIPAL, ejbUser);
env.put(PlatformContext.PLATFORM_CREDENTIALS, ejbPwd);
PlatformContext platform = null;
try {
platform =
new InitialPlatformContext(env);
} catch
(RemoteException e) {
e.printStackTrace();
} catch
(ApplicationException e) {
e.printStackTrace();
}
return
platform;
}
public
String updatePersonPwd(String uid, String newPwd) {
PlatformContext platform = getPlatform();
Subject
subject = getSubject(platform);
PersonManager mgr = new PersonManager(platform, subject);
// find
user
Collection
people;
try {
people =
mgr.getPeople("uid", uid, null);
if
(people.size() == 0) {
System.out.print("用户不存在 :" + uid);
return
null;
}
PersonMO
personMO = (PersonMO) people.iterator().next();
PasswordManager pManager = new PasswordManager(platform,
subject);
Request
request = pManager.synchPasswords(personMO, newPwd, null);
String
requestID = String.valueOf(request.getID());
System.out.print("修改用户密码请求已提交. 处理 request ID:" + requestID);
return
requestID;
} catch
(RemoteException e) {
e.printStackTrace();
} catch
(ApplicationException e) {
e.printStackTrace();
}
return
null;
}
public
static void main(String[] args) {
PersonMgr pm
= new PersonMgr();
pm.updatePersonPwd("asmsith", "admin1234567");
}
}
ChangePwdServlet.java
package com.likegene.demo;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ChangePwdServlet extends HttpServlet {
private
static final long serialVersionUID = 1L;
public
ChangePwdServlet() {
super();
}
public void
doGet(HttpServletRequest request, HttpServletResponse
response)
throws
ServletException, IOException {
this.doPost(request, response);
}
public void
doPost(HttpServletRequest request, HttpServletResponse
response)
throws
ServletException, IOException {
String
newpassword = request.getParameter("newPwd");
String
userid = request.getParameter("uid");
PersonMgr pm
= new PersonMgr();
if
(pm.updatePersonPwd(userid, newpassword) != null) {
request.setAttribute("msg", "change password successfully!");
} else
{
request.setAttribute("msg", userid + " not exist!");
}
request.getRequestDispatcher("./result.jsp").forward(request,
response);
}
}
context.properties
appServerURL=iiop://itim:2809
contextFactory=com.ibm.itim.apps.impl.websphere.WebSpherePlatformContextFactory
itimManager=itim manager
itimManagerPwd=object00
ejbUser=wasadmin
ejbPwd=object00
rootdn=ou=xyz,o=xyz
web.xml
<?xml version="1.0"
encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>ChangePwdServlet</servlet-name>
<servlet-class>com.likegene.demo.ChangePwdServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ChangePwdServlet</servlet-name>
<url-pattern>/ChangePwdServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta
http-equiv=Content-Type content="text/html;
charset=UTF-8">
</head>
<body>
<form method="post"
action="./ChangePwdServlet">
<table>
<tr>
<td>修改密码:</td>
<td>UID:</td>
<td><input type="text"
name="uid"/></td>
<td>新密码:</td>
<td>
<input type="text"
name="newPwd"/></td>
<td>
<input type="submit" value="修改"
/>
</td>
</tr>
</table>
</form>
</body>
</html>
result.jsp
<%@ page language="java" import="java.util.*"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<title>result</title>
<meta http-equiv="pragma"
content="no-cache">
<meta http-equiv="cache-control"
content="no-cache">
<meta http-equiv="expires"
content="0">
</head>
<body>
${msg}
</body>
</html>
相关推荐
IBM ITIM 5.0/5.1 Performance Tuning Guide
节点eğitim电影API Node.JS紧急设置-电影API MF 电影 路线 HTTP动词 开机自检正文 描述 / api /电影 GET 空的 列出所有电影。 / api /电影 POST {'title':'foo','category':'bar','country':'Turkey',年...
FinalProject:31 Ocak 2021Veritabanıprogramlama-数据库编程eğitim
Eğitim-Bir-SenChrome Eklentisi Sayesinde,Genel MerkezManşetHaberlerine,ŞubeHaberlerine veKöşeYazılarınaSiteye Girmeden Daha Kolay BirŞekildeUlaşılabilecek。 支持语言:Türkçe
语言:Türkçe 教育一个 - you chrome插件。 教育 - 一体的Chrome插件,归功于Chrome插件,普通中心袖口新闻,分支新闻和转角编写者可以更轻松地达到不进入网站。
这对于数据改组和创建Prod数据子集以在其他环境中安全使用也很有用访问控制列表服务人事记录租户配置-erglobalid = 00000000000000000000,ou = [名称],dc = com: ITIM配置-ou = itim,ou = [name],DC = COM ...
语言:Türkçe 在线教育系统上,您可以使用此插件激活在线教育系统中的速度和重复功能。 您可以安装此插件以使用速度和重复功能ydsonline.net的训练视频的训练视频。
这些工具都是ITIM特有的-算法,盐,轮数。 不要指望它们可以在任何其他IBM软件上运行。工具对于python工具,您需要Python 3和python-crypto软件包(PyCrypto)。 您可以使用apt install python-crypto , yum或pip ...
EJB基础及应用开发.pdf
GenéDönüşümVeri Bilimieğitim程序ıHafta 2
AngularJS 启动 eğitim için yapmış olduğum kaynak。 请使用 WebStorm IDE 下载并安装 NodeJS 验证节点安装 打开命令提示符 为 Windows 运行“cmd”命令,然后运行“node -v” 打开终端并运行然后运行“node ...
main.m:读取图像,创建图形,调用itIm。 更改第一行代码以测试选择的图像。 filter2gray.m:使用给定的滤镜和图像滤镜灰度图像 gaussianBlur.m:使用高斯滤镜使图像模糊(用于锐化) clustersTest.m:在图像上运行...
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
清华大学严蔚敏数据结构习题集(C版)答案.chm
MYSQL初学者使用指南
这个图书管理只是测试B-树,主要是B-树的实现算法。
EXML.jar 解释xml 的包,用 rsslibj-1_0RC2.jar 包的时候这个包是必需的
rsslibj-1_0RC2.jar 使用这个包可以很方便的生成 rss 文件
用Java实现数据结构中的队列 用Java实现数据结构中的队列
基于 Java 实现的队列和堆栈; 上次上传的那两个也是一样的,不过我以前由于要积分来下载别的资源,只好把以前的那两个的下载积分设置为6来增加我的积分。