BOB: Business Objects Board
Not endorsed by or affiliated with SAP

Register | Login 

Want to sponsor BOB? 
Want to sponsor BOB? (Opens a new window)  

General Notice: No events within the next 45 days.

BOXI Password Reset Self-Serve Utility
3 members found this topic helpful
Goto page Previous  1, 2, 3, 4, 5  Next
 
Search this topic... | Search BOB's Downloads... | Search Box
Register or Login to Post    Forum Index -> BOB's Downloads  Previous TopicPrint TopicNext Topic
Author Message
Chris Pohl
Forum Addict
Forum Addict



Joined: 18 Jun 2002
ASUG Icon
speaker.gif
Posts: 2883
Location: da' burg


flag
PostPosted: Tue Aug 10, 2010 2:41 pm 
Post subject: Re: BOXI Password Reset Self-Serve Utility

We also use the cluster name as defined in our infoview web.xml file
Code:
    // Enter your CMS Name
    String cms = "@BOBJTEST";

_________________
Chris Pohl
Follow me on Twitter
Search is Your Friend™
Back to top
XXX
Principal Member
Principal Member



Joined: 04 Sep 2007

Posts: 130
Location: Madagascar


flag
PostPosted: Tue Aug 24, 2010 10:51 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

Hi,

I tried using the above utility. I am not able to get through the logon page actually i am new to JAVA so not getting where the issue is.

My Logon page give me the below error. Could somebody pls let me know what could be worng.
"type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Could not initialize class com.crystaldecisions.sdk.framework.CrystalEnterprise
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Unknown Source)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)

"

thanks

_________________
XXX
Humility is the refuge of incompetent!
Back to top
Vills
Principal Member
Principal Member



Joined: 23 Oct 2007

Posts: 363
Location: Pune, INDIA


flag
PostPosted: Mon Apr 18, 2011 5:17 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

coceptually GREAT GREAT utility.
We are looking for teh same, however in BO XI 3.1.
If anyone could provide the same that would be GREAT help for us.

Awaiting for replies.

Thanks in advance.

_________________
Regards,
Vills
- BO XI R2 | BO XI 3.1 | BO 4.0
- Walk with Knowledge… You will never be walk alone !!!
Back to top
giggles7840
Senior Member
Senior Member



Joined: 13 Jul 2007

Posts: 74



PostPosted: Thu Apr 28, 2011 3:08 pm 
Post subject: Re: BOXI Password Reset Self-Serve Utility

Does this work in 3.1? I am finally getting to roll 3.1 out and this would be really helpful!
Back to top
Chris Pohl
Forum Addict
Forum Addict



Joined: 18 Jun 2002
ASUG Icon
speaker.gif
Posts: 2883
Location: da' burg


flag
PostPosted: Thu Apr 28, 2011 6:04 pm 
Post subject: Re: BOXI Password Reset Self-Serve Utility

giggles7840 wrote:
Does this work in 3.1? I am finally getting to roll 3.1 out and this would be really helpful!

Yes, I had it working in an XI 3.1 SP3.2 environment. But only for Enterprise authentication

_________________
Chris Pohl
Follow me on Twitter
Search is Your Friend™
Back to top
giggles7840
Senior Member
Senior Member



Joined: 13 Jul 2007

Posts: 74



PostPosted: Fri Apr 29, 2011 12:11 pm 
Post subject: Re: BOXI Password Reset Self-Serve Utility

that is perfect for me! thanks!
Back to top
Denise
Senior Member
Senior Member



Joined: 09 Mar 2006

Posts: 57



PostPosted: Sat Apr 30, 2011 7:53 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

I have not managed to get this working in 3.1 - using Enterprise Authentication..

If anyone has it working please could they get in touch and maybe give me some pointers as to what is going wrong - thanks very much.
Back to top
CMed67
Senior Member
Senior Member



Joined: 21 Mar 2012

Posts: 32



PostPosted: Wed Mar 21, 2012 8:54 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

Hello!

So has anyone created a newer solution that works with XI 3.1, and preferably .Net/IIS usable? Really dying for a solid solution!
Back to top
aniketp
Forum Addict
Forum Addict



Joined: 05 Oct 2007

Posts: 3641
Location: Manchester


flag
PostPosted: Fri May 25, 2012 5:35 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

Can this be done on BO client machine?
_________________
Regards
Aniket
Back to top
kumareshgopal
Forum Member
Forum Member



Joined: 07 Aug 2012

Posts: 2



PostPosted: Tue Aug 07, 2012 9:09 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

Hi
How to implement for SAP BI 4.0 version ?


Regards,
Kumaresh
Back to top
thesnow
Principal Member
Principal Member



Joined: 10 Aug 2011

Posts: 117
Location: Minneapolis, MN


flag
PostPosted: Mon Oct 22, 2012 3:26 pm 
Post subject: Re: BOXI Password Reset Self-Serve Utility

I have been able to get this working on BI 4.0, SP4, Patch 4.5 using Tomcat. I had it working previously on XI 3.1, but had to make minor adjustments with the new version.

I set this utility up in a folder called "selfserve" initially, based on the original source posted to this thread long ago. To migrate from 3.1 to 4.0 I made a copy of the selfserve folder I had working in 3.1, then deleted all of the jar files in the selfserve\WEB-INF\lib folder.

Next, I COPIED the following jar files from other locations under <TOMCAT>\webapps\BOE (there are several lib directories with jar files, pick one. Or, search is your friend) into the selfserve\WEB-INF\lib folder:
activation-1.1.jar
aspectjrt.jar
axiom-api-1.2.5.jar
axiom-impl-1.2.5.jar
axis2.saaj-1.3.jar
axis2-adb-1.3.jar
axis2-kernel-1.3.jar
backport-util-concurrent-2.2.jar
bcm.jar
biarengine.jar
ceaspect.jar
cecore.jar
celib.jar
ceplugins_core.jar
cereports.jar
cereports.jar
certFIPS.jar
cesession.jar
com.sap.js.passport.api.jar
Commons-beanutils.jar
Commons-collections.jar
Commons-digester.jar
commons-logging-1.1.jar
corbaidl.jar
cryptojFIPS.jar
CrystalReportsSDK.jar
derby.jar
ebus405.jar
freessl201.jar
icu4j.jar
Jsf-api.jar
Jsf-impl.jar
Jstl.jar
log4j.jar
logging.jar
ras21sdk.jar
SL_plugins.jar
ssljFIPS.jar
stax-api-1.0.1.jar
TraceLog.jar
webreporting.jar
wsdl4j-1.6.2.jar
wxts-asl-3.2.1.jar
XmlSchema-1.3.2.jar

The list of jar files I got from the SDK Developers Guide for version 4. It's possible some of the jar files are not needed, but I didn't go that far into the weeds. Then I copied the whole selfserve folder to <TOMCAT>\webapps\ and restarted Tomcat. I am able to access the utility at http://web.server.url/selfserve.

Hope this helps someone else, I was stuck in Java error purgatory for a while.
Back to top
ArnoR
Forum Member
Forum Member



Joined: 19 Dec 2011

Posts: 5



PostPosted: Tue Jan 28, 2014 8:10 am 
Post subject: Re: BOXI Password Reset Self-Serve Utility

Hi!

This thread helped me a lot, thanks all!

With your help I was able to implement PW resetting in BO4.1!
Therefore I want to publish my solution of ResetUserPasswordId.jsp which is now able to reset PW for disabled users.

The user is enabled before resetting the PW.
Maybe you don't want your users to be able to enable their account themselves. Please keep this in mind.

I also formatted the sourcecode to my needs, so you may also see many irrelevant differences to the original sourcecode. And I didn't change the ResetUserPasswordName.jsp file, because we don't want to use it in our company. But it should't be too hard to implement my changes there.

Attentation: This is only tested for my environment which has only 1 alias per user!

ResetUserPasswordId.jsp
Code:

<%@ page contentType="text/html; charset=UTF-8" %>

<%@ page import="com.crystaldecisions.enterprise.ocaframework.ServiceNames"%>


<%@ page import="com.crystaldecisions.sdk.occa.pluginmgr.*"%>
<%@ page import="com.crystaldecisions.sdk.plugin.CeProgID"%>

<%@ page import="javax.servlet.http.Cookie" %>
<%@ page import="java.lang.*"%>
<%@ page import="sun.net.smtp.SmtpClient, java.io.*" %>

<%@ page import = "com.crystaldecisions.sdk.exception.SDKException,
com.crystaldecisions.sdk.framework.*,
com.crystaldecisions.sdk.occa.infostore.*,
com.crystaldecisions.sdk.occa.report.*,
com.crystaldecisions.sdk.properties.*,
com.crystaldecisions.sdk.plugin.desktop.user.*,
java.util.*"
%>

<%@ page errorPage="error.jsp" %>

<%!

public String resetPassword(IInfoStore infoStore, String userID) {
    IInfoObjects users= null;
    String HTMLString = "";
    String MailString="";
    String pass="";
    String emailId="";
    pass=passwordGenerator();   
   
   // enable account
   try{
      users = infoStore.query("SELECT * FROM CI_SYSTEMOBJECTS "+ "WHERE SI_PROGID='CrystalEnterprise.USER'" + "And SI_NAME='" + userID + "'"  );

   if (users.size() == 0 ) {
       // The query returned a blank collection (no object found).
        HTMLString = "<option value='0' disabled>No user accounts found";
   }
     
   else{
      IInfoObject iUser = (IInfoObject) users.get(0);
      emailId=((IUser)iUser).getEmailAddress();
      if(emailId.equalsIgnoreCase("")){
         HTMLString="Email Address not available, contact help desk";
      } else {
         Boolean disableUsers = false;
         Iterator boIterator = ((IUser)iUser).getAliases().iterator();
         while(boIterator.hasNext())
         {
            IUserAlias boAlias = (IUserAlias)boIterator.next();
            boAlias.setDisabled(disableUsers);
         }
         infoStore.commit(users);
      }
   }
   } catch (SDKException e) {
      throw new Error("Failed to enable user. Exception caught: "
                  + e.getMessage());
    } catch (NullPointerException e) {
      throw new Error("Failed to enable user. Exception caught: "
                  + e.getMessage());
    }
   
   // reset PW and send email
    try{
       users = infoStore.query("SELECT SI_ID,SI_EMAIL_ADDRESS FROM CI_SYSTEMOBJECTS "+ "WHERE SI_PROGID='CrystalEnterprise.USER'" + "And SI_NAME='" + userID + "'"  );

   if (users.size() == 0 ) {
       // The query returned a blank collection (no object found).
        HTMLString = "No user accounts found";
   }
     
   else{
      IInfoObject iUser = (IInfoObject) users.get(0);

      if(emailId.equalsIgnoreCase("")){
      HTMLString="Email Address not available, contact help desk";
      }
      else{
         // Reset the user's password to NewPassword.
         ((IUser)iUser).setNewPassword (pass);
         ((IUser)iUser).setPasswordToChangeAtNextLogon (true);

         //Commit the user with the new password to the CMS.
         infoStore.commit(users);
         HTMLString= "Userid: " + userID + " has been successfully reset and the new password is automatically mailed to: " + emailId;
      }

      MailString="Userid: " + userID + " has been successfully reset to a new password: " + pass;

      //Email sending code
      //Enter the From Email Address of the mail, this is what the user gets in the From Address when he gets the password reset mail.
      String from="support@company.com";
      String to=emailId;
      try{
         //Enter you SMTP client
         SmtpClient client = new SmtpClient("mymailserver");
         client.from(from);
         client.to(to);
         PrintStream message = client.startMessage();
         message.println("To: " + to);
         //Subject of the mail
         message.println("Subject: Your BO Password has been reset");
         //Body of the mail
         message.println("Please make sure to change your password on the next logon, else your account might get disabled. ");
         message.println();
         message.println(MailString);
         message.println();
         message.println("Log in to BO: http://company.com:8080/BOE/BI");
         message.println();
         client.closeServer();
      } catch (IOException e) {
         System.out.println("ERROR SENDING EMAIL:"+e);
      }
      // kind of logging who resets PW
      try{
         MailString="Userid: " + userID + " has been successfully reset to a new password";
         //Enter you SMTP client
         SmtpClient client = new SmtpClient("mymailserver");
         client.from(from);
         client.to("support@company.com");
         PrintStream message = client.startMessage();
         message.println("To: support@company.com");
         //Subject of the mail
         message.println("Subject: A BO Password has been reset");
         //Body of the mail
         message.println();
         message.println(MailString);
         message.println();
         client.closeServer();
      } catch (IOException e) {
         System.out.println("ERROR SENDING EMAIL:"+e);
      }
   }
    } catch (SDKException e) {
            throw new Error("Failed to reset the user's password. Exception caught: "
                         + e.getMessage());
    } catch (NullPointerException e) {
          throw new Error("Failed to reset the user's password. Exception caught: "
                         + e.getMessage());
    }

   return HTMLString;
}


public String passwordGenerator(){
Random rand = new Random();
int length = 8;
char[] password = new char[8];
for (int x = 0; x < length; x++) {
int randDecimalAsciiVal = rand.nextInt(93) + 33;
password[x] = (char) randDecimalAsciiVal;
}
return String.valueOf(password);

}

%>



<%
// Retrieve the InfoStore object.
IInfoStore infoStore = (IInfoStore) session.getAttribute("InfoStore");

// If the InfoStore object is not found then display an error message.
if (infoStore == null) {
    throw new Error("InfoStore object not found. Please logon again.");
}

// Retrieve the user ID.
String userID = request.getParameter("Resetid");
if(userID.equalsIgnoreCase("administrator")){
out.println("Good try but a bad idea of messing Administator's account!");
}
else
out.println(resetPassword(infoStore, userID));

%>

<html>
    <head>
   <link rel="stylesheet" type="text/css" name="stylelink" href="../tutss.css">
    </head>

    <body>
      
   <hr>

   <form method="get" action="GetUsersId.jsp">
       <input class="button" type="submit" value='Back'>
      
   </form>
<a class="tut" href='logoff.jsp'><class="button">EXIT</a>
     
    </body>
</html>
      Back to top
      Anuradha Padhee
      Forum Member
      Forum Member



      Joined: 09 Jun 2014

      Posts: 3



      PostPosted: Mon Jun 09, 2014 4:47 am 
      Post subject: Re: BOXI Password Reset Self-Serve Utility

      Hi,
      In addition to the above i want to setup security question as a part of the validation process before sending the password to the email id..Any idea on this would be of great help crazy.gif ..

      Thanks & Regards,
      Anuradha Padhee
      Back to top
      CMed67
      Senior Member
      Senior Member



      Joined: 21 Mar 2012

      Posts: 32



      PostPosted: Tue Jun 10, 2014 10:42 am 
      Post subject: Re: BOXI Password Reset Self-Serve Utility

      Wanting to recheck on this, really needing this solution for XI3.1 <sp7> running on IIS <not Tomcat>.

      Can someone provide direction if this solution already exists? Please get in touch with me if so, our Help Desk is needing to be able to reset passwords and I DO NOT want to give them access to CMC if I can help it!

      Thanks much,
      Carl M.
      Back to top
      Anuradha Padhee
      Forum Member
      Forum Member



      Joined: 09 Jun 2014

      Posts: 3



      PostPosted: Wed Jun 11, 2014 1:01 am 
      Post subject: Re: BOXI Password Reset Self-Serve Utility

      Hi All,
      How do i add a link in my infoview page so that it redirects me to the selfserve utility...i tried changing code in logon.jsp page in the installation directory under eclipse folder..but that doesnt help icon_cry.gif
      Thanks & Regards,
      Anuradha Padhee
      Back to top
      Display posts from previous:   
      Register or Login to Post    Forum Index -> BOB's Downloads  Previous TopicPrint TopicNext Topic
      Page 4 of 5 All times are GMT - 5 Hours
      Goto page Previous  1, 2, 3, 4, 5  Next
       
      Jump to:  

      Index | About | FAQ | RAG | Privacy | Search |  Register |  Login 

      Get community updates via Twitter:

      Not endorsed by or affiliated with SAP
      Powered by phpBB © phpBB Group
      Generated in 0.1204 seconds using 17 queries. (SQL 0.0323 Parse 0.0583 Other 0.0299)
      CCBot/2.0 (https://commoncrawl.org/faq/)
      Hosted by ForumTopics.com | Terms of Service
      phpBB Customizations by the phpBBDoctor.com
      Shameless plug for MomentsOfLight.com Moments of Light Logo