//Sample code file: var/ndk/webBuildengine/tmp/viewable_samples/a4ad0b48-dd95-46b6-8289-721e99c8dc76/mgmt_api/ldap/java/LoginConfigAPIExample.java //Warning: This code has been marked up for HTML

    import com.novell.ldap.LDAPConnection;
    import com.novell.ldap.LDAPException;
    import com.novell.ldap.LDAPDSConstants;
    import com.novell.security.nmas.mgmt.NMASLoginDataMgr;
    import com.novell.security.nmas.mgmt.NMASLoginDataException;
    import com.novell.security.nmas.mgmt.LoginDataJLdapTransport;

    public class LoginConfigAPIExample implements LDAPDSConstants
    {

        public static void main( String[] args )
        {
            int      methodID[]   = {0x00};

            if (args.length != 7) {
                System.err.println("Usage:   java LoginConfigAPIExample "
                                + "<host Name> <port number> <login dn> <password> "
                                + "\n          <object dn> <LoginConfigData Tag Name> <data value>");
                System.err.println("Example: java TestLoginConfigAPIs Acme.com 389 "
                                + "\"cn=Admin,o=Acme\" secret\n         "
                                + "\"cn=james,o=Acme\" "
                                + "\"MyJunk\"  \"Junk1\"");
                System.exit(1);
            }

            int    ldapVersion = LDAPConnection.LDAP_V3;
            String ldapHost    = args[0];
            int    ldapPort    = Integer.parseInt(args[1]);
            String loginDN     = args[2];
            String password    = args[3];
            String objectDN    = args[4];
            String tagName     = args[5];
            String dataStr     = args[6];
            LDAPConnection ld  = new LDAPConnection();

            try {
                ld.connect( ldapHost, ldapPort);           // connect to the server
                ld.bind( ldapVersion, loginDN, password ); // bind to the server
                System.out.println( "bind() succeeded");

                NMASLoginDataMgr ldm = new NMASLoginDataMgr(new LoginDataJLdapTransport(ld));

               // ===============> Put Login Config <=================
                ldm.putLoginConfig("",objectDN, methodID, tagName, dataStr.getBytes());
                System.out.println("putLoginConfig() succeeded: ");

               // ===============> Get Login Config <=================
                byte [] returnData = ldm.getLoginConfig("",objectDN, methodID, tagName);
                if(returnData != null)
                {
                    System.out.println("getLoginConfig() returned: " + new String(returnData));
                }

               // ================> Delete Login Config <==================
                ldm.deleteLoginConfig("",objectDN, methodID, tagName);
                System.out.println("deleteLoginConfig() succeeded: ");

               // Verify Login Config was deleted
                returnData = ldm.getLoginConfig("",objectDN, methodID, tagName);
                if(returnData != null)
                {
                    System.out.println("getLoginConfig() returned: " + new String(returnData));
                }

               // ===============> Put Login Secret <=================
                ldm.putLoginSecret("",objectDN, methodID, tagName, dataStr.getBytes());
                System.out.println("putLoginSecret() succeeded: ");

               // ================> Delete Login Secret <==================
                ldm.deleteLoginSecret("",objectDN, methodID, tagName);
                System.out.println("deleteLoginSecret() succeeded: ");

                /* Done - disconnect */
                if ( ld.isConnected() )
                {
                    ld.disconnect();
                }
            }
            catch( LDAPException e )
            {
                System.out.println( "Error: " + e.toString() );
            }
            catch( NMASLoginDataException lde )
            {
                System.out.println( "Error: " + lde.toString() );
            }
        }

}