cancel
Showing results for 
Search instead for 
Did you mean: 

Modifying SAPMLogonLogic.java

Former Member
0 Kudos

Hi,

I followed the following steps to include changes to the performResetPassword() method in the SAPMLogonLogic.java file

1. obtain umelogonbase.jar

2. unzip umelogonbase.jar

3. use JAD to decompile ALL classes in umelogonbase.jar

4. added all java files to my workspace (under src.core)

5. resolved all build errors by adding external jars and organizing imports

6. modify umelogonbase.jar so that it no longer contains the com folder (where all the classes reside)

7. included the modified umelogonbase.jar and com.sap.portal.runtime.logon_api.jar into \dist\portal-inf\lib and \dist\portal-inf\private\lib

8. successfully built project and all classes were built and found in classes.api

9. export project to PAR

10. uploaded PAR to portal

I am unable to view the default logon component for the uploaded PAR. Portal returns

An exception occurred while processing a request for :

iView : N/A

Component Name : N/A

com/sap/security/core/logonadmin/IAccessToLogic.

The log files is logging: <please see next post>

I do not understand why it would say that IAccessToLogic is not found. I can see it in the classes.api folder in my developer studio. If I choose to replace the modified umelogonbase.jar with the original, unmodified umelogonbase.jar, then there are no problems. However, I needed to modify the umelogonbase.jar so that I can customize the password reset functionality.

Any help would be much appreciated.

View Entire Topic
0 Kudos

Hello Voon,

It is searching for class <b>com/sap/security/core/logonadmin/IAccessToLogic</b> which is not present in your umelogonbase.jar as you modified the umelogonbase.jar so that it no longer contains the com folder.

So either you change the usages of this class to the class/package name in your umelogonbase.jar (ex:<b>de</b>/sap/security/core/logonadmin/IAccessToLogic)

Another alternative is to add SharingReference in your Portalapp.xml to the application <b>com.sap.portal.runtime.logon</b>. So that you can still use <b>com/sap/security/core/logonadmin/IAccessToLogic</b>

Greetings,

Praveen Gudapati

p.s. Points are always welcome for helpful answers

Former Member
0 Kudos

Thank You Praveen.

I modified my PortalApp.xml and added com.sap.portal.runtime.logon to the ServicesReference/SharingReference property. My logon.par is now working. However, even with the changes that I have made to the PortalApp.xml, I do not think that my class is being called at all. Is it possible that by adding com.sap.portal.runtime.logon to the SharingReference property, it is bypassing my class?

I tried the other alternative. By renaming package com.sap.security.core.logonadmin to com.mycom.security.core.logonadmin, I am back to square one, where the logon.par is not working and portal is giving me the IAccessToLogic error.

Former Member
0 Kudos

I have also tried to repackage umelogonbase.jar so that the classes in the "com" folder originate from the ones I generated in the NWDS. However, the portal is still complaining that it is not able to find IAccessToLogic...

Former Member
0 Kudos

Apparently, I cannot use winzip to repackage my umelogonbase.jar. I had to use NWDS to create a new project, put the compiled classes and properties from umelogonbase.jar into the project and export them to a JAR file.