Deploying Change Password Web Service in OBIEE 11g !!
Hi All,
We will see in today’s post regarding How to deploy a web service to change the password of the user by himself through OBIEE login, as this option by default is not available in OBIEE.
Steps:
Through Jdeveloper have to generate a war file using some java code which acts as a webservice.
When a create java class, you have to remove the existing code and replace the new code which is given in below hyper link name changepassword.java and change the parameter webLogicHostname, webLogicPort, webLogicUsername, webLogicPassword according to your environment.
Link for the changepasswd code:
https://drive.google.com/file/d/13bQ-vvJOqkdLXtvDBLsZliT9nAlj6S2m/view?usp=sharing
Create a new connection of your OBIEE weblogic server to deploy the created webservice:
Once the webservice deployed successfully , go to analytics sign with weblogic user to create new Dashboard, Action link.
Create a new Dashboard,called User Settings.
Under Location, select Browser…
From the Shared Folders folder, select New Folder. Name it User Account.
Select the radio button for Add content later (Create empty dashboard). Click Ok.
Click on the Catalog link, and navigate to the newly created folder, User Account.
Select Permissions to set the appropriate permissions on the new folder, BI Administrator should have Full Control. BI Consumer should have Open.
- Make sure that Apply permissions to sub-folders and Apply permissions to items within folder are both selected.
Click Ok.
Invoke a web service from New option in the right side panel of analytics page.
Call the webservice which was deployed in OBIEE managed server through WSDL
http://192.168.0.113:9704/Changepwd-PasswordChange-context-root/ChangepwdPort?WSDL
Drill down until you can select passwordChange, and select it. Click Ok.
This opens up a new dialog box, enter the following values for the prompts (no quotes):
- passwordChange_arg0 = “Username:”
- passwordChange_arg1 = “Old Password:”
- passwordChange_arg2 = “New Password:”
- passwordChange_arg3 = “Confirm Password:”
For the Username argument, for Value select Session Variable, then type in USER and mark it as fixed and hidden.
- This will force the password change to only work for the current logged in user.
Click the Options button to personalize the messages (again, no quotes):
- Set Dialog Title to “Change Password”
- Set Action Help Text to “Please enter your existing password and new password below.”
- Set Execute Button Text to “Change Password”
- Leave all other options blank.
Click on the Action Results tab and enter the parameters for the return messages (again, no quotes):
- Set Dialog Text to “@{passwordChangeResponse}”
- Create one XPath variable:
- Name: passwordChangeResponse
- XPath Expression: Body/passwordChangeResponse/return
- Set Dialog Title to “Result”
Click Ok. Click Save Action.
Save the action as Change Password into the User Account Shared Folder you created above.
Navigate to your newly created Dashboard, User Settings. Edit the dashboard by placing a new section. In that section, add a text item. Place the following into the text item (making sure to check the Contains HTML Markup box):
<script type=”text/javascript”>
document.getElementById(“idPageOptions”).style.display = “none”;
</script>
Welcome to the change password page. This page will allow you to change your password for access to the Business Intelligence reporting application.<br><br>
You are currently logged in as <b>@{biServer.variables[‘NQ_SESSION.USER’]}</b>.<br><br>
Please click the link below to begin the password reset process.
Click Ok. Edit the Column Properties. Click on Custom CSS Style Options (HTML Only) and add the following to the Use Custom CSS Style:
position:absolute;height:120px; margin-top:40px;
Click Ok.
Drag an Action Link below your text item in that same section. Name the link Change Password, and navigate to the saved Action Link you saved to the Shared Folder. Don’t define any values, just click on the Ok button.
Click Ok to close the Action Link Properties window.
On the main section properties, unselect Collapsible. Additionally, from the Section Properties, set the border position to None.
Click the icon to save the dashboard. Click the
icon to view the results.
Now login with a user in analytics and try to change password:
It’s worked successfully.
Think found handy stuff.
Happy learing !!!
Reference : http://adventuresinobiee.blogspot.com/2013/02/configure-change-password-for-weblogic.html
Thank you very Much for your effort and very clear document. its work for me. i’m a novice in obiee field, still create a change request form for user through your guideline. its a super document.
Please let me know if your are planing to visit Bangladesh, I’m leaving in Bangladesh. you have one pending treat from me :D.
Thank you again
Nahid
Thanks, Nahid for your kind words, it’s really motivating me to do more.
Appreciate it!!
Thanks & Regards,
Firoz K. Hussain.
Mob : +971551862816
Hi Hussain,
I tried deploying this to OBIEE 12.2.1.4.0 but it errors out.
Action could not be invoked.
ServiceExecutionFailure :
Error invoking web service ChangepwdService at endpoint https://:9501/Changepwd-PasswordChange-context-root/ChangepwdPort
Client received SOAP Fault from server :
Unable to create connection for IOR weblogic.iiop.ior.IOR[RMI:javax.management.remote.rmi.RMIServer:0000000000000000] @:0
When I run the below command, I do see a complete WSDL:
https://:9501/Changepwd-PasswordChange-context-root/ChangepwdPort?WSDL
I used JDeveloper-12 to create and deploy the service. During the setup there were some prompts that are not in your setup steps.
example of one of the questions was “Port Name” and left it to default “ChangepwdPort”. (notice it was port Name and not number)
I have HTTPS enabled on my server.
Any ideas?
BTW, loved the way you had documented the whole process.
Regards,
Baber
Thanks Baber and sorry for late reply, I didn’t check in the newer version of OBIEE, let me try and come back.
Regards,
Firoz K. Hussain
Hi Hussain,
I have deployed the webservice on Weblogic but facing the following error when execute from the OBIEE:
ServiceExecutionFailure :
Error invoking web service OBIChangepwdService at endpoint http://172.31.25.239:7001/Changepwd-Changepwd-context-root/OBIChangepwdPort Client received SOAP Fault from server : MustUnderstand headers:[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood
Hi Huynh & Hussain,
I have the same MustUnderstand error, did either of you resolve what the issue was.
Great Article Hussain very easy to follow
thank,
Steve
I have depoly as per your instruction but showing below Error:
ServiceExecutionFailure :
Error invoking web service ChangepwdService at endpoint http://192.168.200.106:9704/ChangePwd-PasswordChange-context-root/ChangepwdPort Client received SOAP Fault from server : MustUnderstand headers:[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood
Please fix the issue