Change password for weblogic users in obiee 11g

2,403 views

Published on

Change password for weblogic users in obiee 11g

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,403
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
90
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Change password for weblogic users in obiee 11g

  1. 1. Change Password for Weblogic users in OBIEE 11g PREPARED BY RAVI KUMAR LANKE Page 1
  2. 2. JDeveloper Steps I used JDeveloper to build and deploy the webservice, Open JDeveloper PREPARED BY RAVI KUMAR LANKE Page 2
  3. 3. PREPARED BY RAVI KUMAR LANKE Page 3
  4. 4. PREPARED BY RAVI KUMAR LANKE Page 4
  5. 5. PREPARED BY RAVI KUMAR LANKE Page 5
  6. 6. Paste in the contents of ChngPwd.java to your new class file in JDeveloper. o Changepwd.java Note: You will need to update the variables for weblogic hostname, port, username, and password. package ChngPwd; import java.io.IOException; import java.net.MalformedURLException; import javax.jws.WebMethod; import javax.jws.WebService; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import java.util.HashMap; import java.util.Hashtable; import javax.naming.Context; PREPARED BY RAVI KUMAR LANKE Page 6
  7. 7. @WebService public class ChngPwd { private static JMXConnector jmxConnector = null; private static MBeanServerConnection mBeanServerConnection = null; private static String webLogicHostname = "172.16.12.166"; // Set to the weblogic host private static String webLogicPort = "9704"; // Set to the port of the admin server on the weblogic instance // private static String webLogicUsername = "weblogic"; // Set to the weblogic admin user //private static String webLogicPassword = "welcome123"; // Set to the password of the weblogic admin user private static final String validationFailed = "[Security:090237]"; private static final String mustBeEightChars = "[Security:090285]"; private static final String missingSpecialChars = "[Security:099116]"; public ChngPwd() {} // for JAXB @WebMethod(exclude = true) public String changeUserPassword( String userId, String oldPassword, String newPassword, String confirmPassword ) throws Exception { ObjectName securityMBeanName = new ObjectName("Security:Name=myrealmDefaultAuthenticator"); Object objUser[] = new Object[]{(userId), (oldPassword), (newPassword) }; String objStr[] = new String[]{("java.lang.String"), ("java.lang.String"), ("java.lang.String") }; try { if ( confirmPassword.equals(newPassword) ) { mBeanServerConnection.invoke(securityMBeanName, "changeUserPassword", objUser, objStr); return "Password successfully changed."; } else { return "New passwords do not match."; } } catch (Exception e) { if( e.getCause().getMessage().contains( validationFailed ) ) return "Validation of old password failed."; else if ( e.getCause().getMessage().contains( mustBeEightChars ) ) PREPARED BY RAVI KUMAR LANKE Page 7
  8. 8. return "Password must be at least 8 characters long."; else if ( e.getCause().getMessage().contains( missingSpecialChars ) ) return "Password must contain at least 1 number or special character."; else return "Can not reset password at this time. Please contact an Administrator."; } } @WebMethod(exclude = true) public static void initConnection(String hostname, String portString,String webLogicUsername,String webLogicPassword) throws IOException, MalformedURLException { Integer portInteger = Integer.valueOf(portString); int port = portInteger.intValue(); String mserver = "/weblogic.management.mbeanservers.runtime"; JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:iiop:///jndi/iiop://" + hostname + ":" + port + mserver); Hashtable h = new Hashtable(); String[] credentials = new String[] {webLogicUsername, webLogicPassword }; h.put("jmx.remote.credentials", credentials); jmxConnector = JMXConnectorFactory.connect(serviceURL, h); //jmxConnector = JMXConnectorFactory.connect(serviceURL); mBeanServerConnection = jmxConnector.getMBeanServerConnection(); } /*@WebMethod(exclude = true) public static void main(String[] args) throws Exception { }*/ public String passwordchange( String userId, String oldPassword, String newPassword, String confirmPassword ) throws Exception { ChngPwd c = new ChngPwd(); initConnection(webLogicHostname, webLogicPort,userId,oldPassword); String result = c.changeUserPassword( userId, oldPassword, newPassword, confirmPassword ); jmxConnector.close(); return result; } } PREPARED BY RAVI KUMAR LANKE Page 8
  9. 9. PREPARED BY RAVI KUMAR LANKE Page 9
  10. 10. PREPARED BY RAVI KUMAR LANKE Page 10
  11. 11. Let’s now deploy the web service to the Weblogic server. Right Click on the project and clickDeploy –> Webservices PREPARED BY RAVI KUMAR LANKE Page 11
  12. 12. PREPARED BY RAVI KUMAR LANKE Page 12
  13. 13. PREPARED BY RAVI KUMAR LANKE Page 13
  14. 14. PREPARED BY RAVI KUMAR LANKE Page 14
  15. 15. PREPARED BY RAVI KUMAR LANKE Page 15
  16. 16. PREPARED BY RAVI KUMAR LANKE Page 16
  17. 17. PREPARED BY RAVI KUMAR LANKE Page 17
  18. 18. OBIEE 11g Steps The following steps take place from within OBIEE. They will create a simple Agent to invoke the webservice deployed above, and then create a hidden dashboard page to be a launch point for the agent. Login to the OBIEE portal (http://localhost:9704/analytics) PREPARED BY RAVI KUMAR LANKE Page 18
  19. 19. PREPARED BY RAVI KUMAR LANKE Page 19
  20. 20.  Create a new Dashboard,called DemoSettings.  Under Location, select Browser…  From the Shared Folders folder, select New Folder. Name it DemoAccount. Select the radio button for Add content later (Create empty dashboard). Click Ok. PREPARED BY RAVI KUMAR LANKE Page 20
  21. 21. PREPARED BY RAVI KUMAR LANKE Page 21
  22. 22.  Click on the Catalog link, and navigate to the newly created folder, DemoAccount.  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. PREPARED BY RAVI KUMAR LANKE Page 22
  23. 23. From the New menu in the OBIEE global navigation, select Action PREPARED BY RAVI KUMAR LANKE Page 23
  24. 24. Choose Invoke Web Service from the popup menu. PREPARED BY RAVI KUMAR LANKE Page 24
  25. 25. Plug in the WSDL and click Open. The URL would look like: http://<weblogic host>:<obiee port>/<package name>-<project name>-contextroot/<package name>Port?WSDL On my local, it is: http://172.16.12.166:9704/ChngPwd-passwordchange-contextroot/ChngPwdPort?WSDL Drill down until you can select passwordChange, and select it. Click Ok PREPARED BY RAVI KUMAR LANKE Page 25
  26. 26. This opens up a new dialog box, enter the following values for the prompts (no quotes): o passwordChange_arg0 = "Username:" o passwordChange_arg1 = "Old Password:" o passwordChange_arg2 = "New Password:" o 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. PREPARED BY RAVI KUMAR LANKE Page 26
  27. 27. 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. PREPARED BY RAVI KUMAR LANKE Page 27
  28. 28. 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" PREPARED BY RAVI KUMAR LANKE Page 28
  29. 29. Click Ok. Click Save Action. Save the action as ChangePassword into the DemoAccount Shared Folder you created above. PREPARED BY RAVI KUMAR LANKE Page 29
  30. 30. Navigate to your newly created Dashboard, DemoSettings. 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): PREPARED BY RAVI KUMAR LANKE Page 30
  31. 31. <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. PREPARED BY RAVI KUMAR LANKE Page 31
  32. 32. PREPARED BY RAVI KUMAR LANKE Page 32
  33. 33. PREPARED BY RAVI KUMAR LANKE Page 33
  34. 34. 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; 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. PREPARED BY RAVI KUMAR LANKE Page 34
  35. 35. On the main section properties, unselect Collapsible. Additionally, from the Section Properties, set the border position to None. PREPARED BY RAVI KUMAR LANKE Page 35
  36. 36. PREPARED BY RAVI KUMAR LANKE Page 36
  37. 37. PREPARED BY RAVI KUMAR LANKE Page 37
  38. 38. Click the icon to save the dashboard. Click the PREPARED BY RAVI KUMAR LANKE icon to view the results. Page 38
  39. 39. PREPARED BY RAVI KUMAR LANKE Page 39
  40. 40. OBIEE Server Steps The following steps take place on the OBIEE server. All files references are for a Linux/Solaris install, but file locations will be similar for Windows. Update the following files, to place a link to the Change Password in the header bar: /apps/applobi/OBIEE11g/Oracle_BI1/bifoundation/web/app/res/b_mozilla/header.js /apps/applobi/OBIEE11g/user_projects/domains/bifoundation_domain/servers/bi_server1/tmp/_WL_user/ analytics_11.1.1/7dezjl/war/res/b_mozilla/header.js PREPARED BY RAVI KUMAR LANKE Page 40
  41. 41. For these two files, find the line: b.push(new obips.ContextMenu.MenuOption(saw.header.getLocalizedString("kmsgHeaderMyAccou nt"),"",null,new obips.Callback(this,this.onMyAccount))); and replace it with: b.push(new obips.ContextMenu.MenuOption(saw.header.getLocalizedString("kmsgHeaderMyAccou nt"),"",null,new obips.Callback(this,this.onMyAccount)));b.push(new obips.ContextMenu.MenuOption(saw.header.getLocalizedString("kmsgHeaderCustomU RL"),"",null,new obips.Callback(this,this.onCustomURL)));  then find the line: saw.header.NavBar.prototype.onMyAccount=function(){saw.header.Menubar.getMana ger().hidePopupPanel();var a=new saw.ondemandload.FuncProxy("obips.AccountInfo.launchDialog",{messageTemplate: "kuiMyAccountDialogHead"});a.exec()};  and replace it with: saw.header.NavBar.prototype.onMyAccount=function(){saw.header.Menubar.getMana ger().hidePopupPanel();var a=new saw.ondemandload.FuncProxy("obips.AccountInfo.launchDialog", {messageTemplate:"kuiMyAccountDialogHead"});a.exec()};saw.header.NavBar.proto type.onCustomURL=function(){var w = 1920, h = 1080; if (document.all) { w = document.body.clientWidth;h = document.body.clientHeight;x = window.screenTop;y = window.screenLeft;} else if (document.layers) { w = window.innerWidth;h = window.innerHeight;x = window.screenX;y = window.screenY;} var popW = 450, popH = 276;var leftPos = ((w-popW)/2)+y, topPos = ((h-popH)/2)+x;window.open('saw.dll?PortalPages&PortalPath %2Fshared%2FUser%20Account%2F_portal%2FUser%20Settings','passwordresetwindow' ,'toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, PREPARED BY RAVI KUMAR LANKE Page 41
  42. 42. directories=no, status=no, width='+popW+',height='+popH+',top='+topPos+',left='+leftPos);}; Note: Replace the bold part with the path to the location you saved the Action Link in OBIEE above. PREPARED BY RAVI KUMAR LANKE Page 42
  43. 43. PREPARED BY RAVI KUMAR LANKE Page 43
  44. 44. Update the following file to add the resource id /apps/applobi/OBIEE11g/Oracle_BI1/bifoundation/web/msgdb/common/saw.header.xml For this file, add the following line: <resource id="kmsgHeaderCustomURL" /> PREPARED BY RAVI KUMAR LANKE Page 44
  45. 45. Save it and exit The next file will not exist out of the box, and needs to be created, along with any folders along the way. /apps/applobi/OBIEE11g/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/core application_obips1/msgdb/l_en/customMessages/uicmsgs/saw.header.xml For this file, you will be creating it, so make the contents: <?xml version="1.0" encoding="utf-8"?> PREPARED BY RAVI KUMAR LANKE Page 45
  46. 46. <webmessagetables xmlns:sawm="com.siebel.analytics.web/message/v1"> <webmessagetable lang="en-us" system="saw.header" table="Messages"> <webmessage name="kmsgHeaderCustomURL"><text>Change Password</text></webmessage> </webmessagetable> </webmessagetables> PREPARED BY RAVI KUMAR LANKE Page 46
  47. 47. Save it and exit Restart the OBIEE services. You should now see a link under the User menu called Change Password. This will open a new window providing the user with simple instructions to change their password. PREPARED BY RAVI KUMAR LANKE Page 47
  48. 48. PREPARED BY RAVI KUMAR LANKE Page 48
  49. 49. PREPARED BY RAVI KUMAR LANKE Page 49
  50. 50. PREPARED BY RAVI KUMAR LANKE Page 50
  51. 51. PREPARED BY RAVI KUMAR LANKE Page 51
  52. 52. PREPARED BY RAVI KUMAR LANKE Page 52
  53. 53. PREPARED BY RAVI KUMAR LANKE Page 53
  54. 54. PREPARED BY RAVI KUMAR LANKE Page 54
  55. 55. PREPARED BY RAVI KUMAR LANKE Page 55
  56. 56. PREPARED BY RAVI KUMAR LANKE Page 56
  57. 57. PREPARED BY RAVI KUMAR LANKE Page 57
  58. 58. PREPARED BY RAVI KUMAR LANKE Page 58
  59. 59. PREPARED BY RAVI KUMAR LANKE Page 59
  60. 60. PREPARED BY RAVI KUMAR LANKE Page 60
  61. 61. PREPARED BY RAVI KUMAR LANKE Page 61
  62. 62. PREPARED BY RAVI KUMAR LANKE Page 62
  63. 63. PREPARED BY RAVI KUMAR LANKE Page 63
  64. 64. PREPARED BY RAVI KUMAR LANKE Page 64

×