How to check empty NSString

Checking empty string

NSString *string1=@"";
NSString *string2=@" ";
NSString *string3=@"  \n ";



string1 is an empty string.

string2 is not empty having empty whitespace
[[string2 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

string3 is not empty having empty whitespace and new line character
[string3 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

all the above string can be checked with @"" to test empty string.

how to create singleton object

Singleton object are created only once in the life cycle of the app.

Singleton object can be accessed using [ClassName sharedInstance].

+(id)sharedInstance{
    static MyClassManager *sharedMyClassManager = nil;
    static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
          sharedMyClassManager = [[self alloc] init];
     });
     retrun sharedMyClassManager;
}

WebRep
currentVote
noRating
noWeight

@property types

Objects have properties to access for public.
Types of attributes

atomic - can be accessed only by one thread at a time.
non-atomic - can be accessed by any number of threads.
readonly - having access for readonly for object.
readwrite - having access for read and write object.
retain - will increase the retain count of the object. This is called as shallow copy. This will not create new memory reference.

copy - will create new memory location and copy all data to the newly created object. This is called as Deep copy.
assign - This will neither create new reference nor increase the retain count of the object. All delegate properties are assign.


How to install xcode


Download Xcode from https://developer.apple.com/xcode/ 
Drag and drop to applications.
Then open Xcode from Applications.

StringArray to String in java


  • By Using StringUtils.join method in apache common we can easily convert String[] to String.
  • You can download this jar from Here.


  1. package commonsUtils;
  2. import org.apache.commons.lang.StringUtils;

  3. public class SampleRunnable {
  4. public static void main(String[] args) {
  5. // TODO Auto-generated method stub
  6. String[] stringArray = { "one", "two", "three", "four", "five" };
  7. String finalString = StringUtils.join(stringArray,","); //Output comma(,) seperated string
  8. String finalString2 = StringUtils.join(stringArray,":"); //Output colon(,) seperated string
  9. System.out.println(" finalString :: "+finalString);
  10. System.out.println(" finalString2 :: "+finalString2);
  11. }
  12. }
 Output :


 finalString :: one,two,three,four,five
 finalString2 :: one:two:three:four:five



Format Date in java

  • DateFormatUtils.format Utility method is used to format date from date to string.
  • You can use this method with the help of commons-lang-2.6.jar.
  • You can download this jar from Here.

  1. package commonsUtils;
  2. import java.util.Date;

  3. import org.apache.commons.lang.time.DateFormatUtils;

  4. public class SampleRunnable {

  5. public static void main(String[] args) {
  6. // TODO Auto-generated method stub
  7. Date today = new Date();
  8. String firstPattern = DateFormatUtils.format(today,"MM/dd/yyyy HH:mm:ss");
  9. System.out.println("Date to String in MM/dd/yyyy HH:mm:ss::"+firstPattern);
  10. String secondPattern = DateFormatUtils.format(today,"dd/MM/yyyy HH:mm:ss");
  11. System.out.println("Date to String in dd/MM/yyyy HH:mm:ss::"+secondPattern);
  12. String thirdPattern = DateFormatUtils.format(today,"MM/dd/yyyy");
  13. System.out.println("Date to String in MM/dd/yyyy::"+thirdPattern);
  14. String fourthPattern = DateFormatUtils.format(today,"dd/MM/yyyy");
  15. System.out.println("Date to String in dd/MM/yyyy::"+fourthPattern);
  16. }

  17. }


Output :

 Date to String in MM/dd/yyyy HH:mm:ss::07/17/2013 15:06:30
 Date to String in dd/MM/yyyy HH:mm:ss::17/07/2013 15:06:30
 Date to String in MM/dd/yyyy::07/17/2013
 Date to String in dd/MM/yyyy::17/07/2013



File.separator vs File.pathSeparator



  • File.separator == > separator: Platform dependent default name-separator character as String. For           windows, it’s ‘\’ and for unix it’s ‘/’.
  • File.separatorChar ==>separatorChar: Same as separator but it’s char.
  • File.pathSeparator ==> pathSeparator: Platform dependent variable for path-separator. For example PATH or CLASSPATH variable list of paths separated by ‘:’ in Unix systems and ‘;’ in Windows system.
  • File.pathSeparatorChar ==> pathSeparatorChar: Same as pathSeparator but it’s char.
  • This is the environment independent property.This will be usefull for file upload and downloading etc.



  1. package commonsUtils;
  2. import java.io.File;

  3. public class FileSep{
  4. public static void main(String[] args){
  5.                   String filepath = File.separator + "sample" + File.separatorChar + "seperator";
  6.                   String pathSep = File.pathSeparator + "sample" + File.pathSeparatorChar + "seperator";                                              

  7.                   System.out.println("The path of the file is : " + filepath);
  8.                   System.out.println("The path of the file is  :  " + pathSep);

  9.  System.out.println("File.separator = "+File.separator)
  10.  System.out.println("File.separatorChar = "+File.separatorChar);
  11.  System.out.println("File.pathSeparator = "+File.pathSeparator);
  12.  System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar);
  13. }
  14. }


 Output :

 For Windows
 -------------
 The path of the file is  :  \sample\seperator
 The path of the file is  :  ;sample;seperator
 File.separator = \
 File.separatorChar = \
 File.pathSeparator = ;
 File.pathSeparatorChar = ;

 For Unix
 ----------
 The path of the file is  :  /sample/seperator
 The path of the file is  :  :sample:seperator
 File.separator = /
 File.separatorChar = /
 File.pathSeparator = :
 File.pathSeparatorChar = :

Remove null values in ArrayList


  • By Using Collections.singleton(null) we can remove the null values in the list.



  1. package commonsUtils;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.HashSet;
  5. import java.util.List;
  6. import java.util.Set;

  7. public class RemDupList {
  8.      public static void main(String[] args) {
  9. // TODO Auto-generated method stub
  10. List<String> arrayList1 = new ArrayList<String>();

  11.    arrayList1.add("A");
  12.    arrayList1.add("A");
  13.    arrayList1.add("B");
  14.    arrayList1.add("B");
  15.    arrayList1.add("B");
  16.    arrayList1.add("C");
  17.    arrayList1.add(null);
  18.    arrayList1.add(null);
  19.    for (String item : arrayList1){
  20.      System.out.println(item);
  21.    }
  22.    HashSet<String> hashSet = new HashSet<String>(arrayList1);

  23.             arrayList1 = new ArrayList<String>(hashSet);
  24.    System.out.println(" =============== ");
  25.     arrayList1 .removeAll(Collections.singleton(null)); //This will remove the null values
  26.     arrayList1 .removeAll(Collections.singleton("A")); //This will remove the value "A" in the entire list.
  27.    for (String item : arrayList1 ){
  28.      System.out.println(item);
  29.    }
  30.     }
  31. }

 Output : 
  Before Removing null values
 A
 A
 B
 B
 B
 C
 null
 null
 =============== 
 After Removing null values
 B
 C

StringEscapeUtils.escapeXml


  • Unescapes a string containing XML entity escapes to a string containing the actual Unicode characters corresponding to the escapes.
  • Supports only the five basic XML entities (gt, lt, quot, amp, apos). Does not support DTDs or external entities.
  • Note that numerical \\u unicode codes are unescaped to their respective unicode characters. This may change in future releases.

  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4.  public static void main(String[] args) {
  5.    String xmlString = "<data>";
  6.    System.out.println("After escapeXml::"+StringEscapeUtils.escapeXml(xmlString));
  7.    System.out.println("After unescapeXml::"+StringEscapeUtils.unescapeXml(xmlString));
  8. }
  9.  }

 Output :
 After escapeXml::&lt;data&gt;
 After unescapeXml::<data>

StringEscapeUtils.escapeSql


  •  Escapes the characters in a String to be suitable to pass to an SQL query.



For example,
  • statement.executeQuery("SELECT * FROM MOVIES WHERE TITLE='" +
StringEscapeUtils.escapeSql("McHale's Navy") + "'");

  • At present, this method only turns single-quotes into doubled single-quotes ("McHale's Navy" => "McHale''s Navy"). It does not handle the cases of percent (%) or underscore (_) for use in LIKE clauses.

  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4.  public static void main(String[] args) {
  5.    String unescapedSql = "L'OREAL";
  6.    System.out.println("After escapeSql::"+StringEscapeUtils.escapeSql(unescapedSql));
  7.    System.out.println(unescapedSql);
  8. }
  9.  }

Output :

 After escapeSql::L''OREAL
 L'OREAL

StringEscapeUtils.escapeJavaScript


  • Escapes the characters in a String using JavaScript String rules.
  • Escapes any values it finds into their JavaScript String form. Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)
  • So a tab becomes the characters '\\' and 't'.
  • The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.



  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4.  public static void main(String[] args) {
  5. String inputString = "What's i\tn a name?";
  6.    System.out.println("After escapeJavaScript::"+StringEscapeUtils.escapeJavaScript(inputString));
  7.    System.out.println("After unescapeJavaScript::"+StringEscapeUtils.unescapeJavaScript(inputString)); 
  8. }
  9.  }



 Output :

 After escapeJavaScript::What\'s i\tn a name?
 After unescapeJavaScript::What's i n a name?

StringEscapeUtils.escapeJava


  • Escapes the characters in a String using Java String rules
  • Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)
  • So a tab becomes the characters '\\' and 't'.
  • The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.



  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4.  public static void main(String[] args) {
  5.    String inputStr = "sample jav\ta escape";
  6.    System.err.println("After escape ::"+StringEscapeUtils.escapeJava(inputStr));
  7.    System.err.println("After unescape ::"+StringEscapeUtils.unescapeJava(inputStr));
  8.    }
  9.  }



 Output :
 After escape ::sample jav\ta escape
 After unescape ::sample jav a escape

How to Unlock XELSYSADM account in OIM


If Xelsysadm account gets locked in OIM ther are 2 ways to unlock it.
  • If you have any other adminstrator account, login using that acount and unlock the user. 
  • Update the usr table to unlock the xelsysadm account using below commands.
  1.       update usr set usr_login_attempts_ctr=0 where usr_login=’XELSYSADM’;
  2.       update usr set usr_locked=0 where usr_login=’XELSYSADM’;
  3.       Commit;

Remove Duplicate in UserDefinied list

we can remove duplicate object in user definied list by overriding equals and hashcode method in java.
first create Java Bean.

Person.java
-------------

  1. package com.utilitySample;

  2. public class Person{

  3. private String name;

  4. public String getName() {
  5. return name;
  6. }

  7. public void setName(String name) {
  8. this.name = name;
  9. }

  10. /**
  11.  * we have to override equals method to avaoid duplicates in userDefined list.
  12.  */
  13. public boolean equals(Object obj) {
  14. boolean result = false;
  15. Person person = (Person) obj;

  16. if (this.getName().equalsIgnoreCase(person.getName())){
  17. result = true;
  18. }
  19. return result;
  20. }

  21. public int hashCode() {
  22. // TODO Auto-generated method stub
  23. return 1;
  24. }

  25. }

Then create your main java class.

RemDupList.java
------------------


  1. package com.utilitySample;

  2. import java.util.ArrayList;
  3. import java.util.HashSet;
  4. import java.util.List;
  5. import java.util.Set;

  6. public class RemDupList {

  7. public static void main(String[] args) {
  8.             List<Person> personList = new ArrayList<Person>();
  9.    Person person = new Person();
  10.    person.setName("amazon");
  11.    personList.add(person);
  12.    person = new Person();
  13.    person.setName("amazon");
  14.    personList.add(person);
  15.    person = new Person();
  16.    person.setName("stalin");
  17.    personList.add(person);
  18.    person = new Person();
  19.    person.setName("stalin");
  20.    personList.add(person);
  21.    for (Person pers:personList){
  22.     System.out.println("Before removing duplicates ::"+pers.getName());
  23.    }
  24.    Set<Person> personSet = new HashSet<Person>(personList);
  25.    for (Person pers:personSet){
  26.     System.out.println("After removing duplicates ::"+pers.getName());
  27.    }
  28.    List<Person> personList2 = new ArrayList<Person>();
  29.    personList2.addAll(personSet);
  30.    System.out.println("size ::"+personList2.size());
  31.    for (int i = 0; i < personList2.size(); i++) {
  32. System.out.println("value ::"+personList2.get(i).getName());
  33. }
  34.   }

  35. }

 Output :
 Before removing duplicates ::amazon
 Before removing duplicates ::amazon
 Before removing duplicates ::stalin
 Before removing duplicates ::stalin
 After removing duplicates ::stalin
 After removing duplicates ::amazon
 size ::2
 value ::stalin
 value ::amazon





Remove Duplicates in list


  • We have to create a list of String.
  • Then pass that string top Hashset.(i.e)HashSet will not allow duplicates.
  • So the resultant list is a unique list.
  • The same procedure you have to follow for Interger etc.For user definied list we have to override 
  • hashCode and Equals method.That you can see in my next post.

  1. package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class RemoveDuplicate {
  4.  public static void main(String[] args) {
  5.      List<String> arrayList1 = new ArrayList<String>();
  6.    arrayList1.add("vel");
  7.    arrayList1.add("vel");
  8.    arrayList1.add("dinesh");
  9.    arrayList1.add("dinesh");
  10.    arrayList1.add("dinesh");
  11.    arrayList1.add("prasanth");

  12.    List<String> arrayList2 = new ArrayList<String>(new HashSet<String>(arrayList1));

  13.    for (String item : arrayList2){
  14.        System.out.println(item);
  15.    }      
  16.     }
  17.  }

 Output :
  dinesh
  vel
  prasanth

StringUtils.isNotBlank

  • StringUtils.isNotBlank("vaiable") function return false for null,Empty and whitespace string.
  • Where as StringUtils.isNotEmpty("variable") function return true for whiteSpace string.
  • This function is null safe.
  • You can use this method with the help of commons-lang-2.6.jar.
  • You can download this jar by using the below link.


  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4. public static void main(String[] args) {
  5.    System.out.println(StringUtils.isNotBlank(null));
  6. System.out.println(StringUtils.isNotBlank(""));
  7. System.out.println(StringUtils.isNotBlank(" "));
  8. System.out.println(StringUtils.isNotBlank("vel"));
  9. System.out.println(StringUtils.isNotBlank("  vel  "));
  10.    }
  11.  }

 Output : 
 false
 false
 false
 true
 true


StringUtils.isBlank


  • This function returns true if the string contains null,empty or whiteSpace.Where as isEmpty returns true for null & empty.
  • This function is null safe
  • You can use this method with the help of commons-lang-2.6.jar.
  • You can download this jar by using the below link


     http://mvnrepository.com/artifact/commons-lang/commons-lang/2.6

  1. package com.utilitySample;
  2. import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4. public static void main(String[] args) {
  5.                  System.out.println(StringUtils.isBlank(null));
  6. System.out.println(StringUtils.isBlank(""));
  7. System.out.println(StringUtils.isBlank(" "));
  8. System.out.println(StringUtils.isBlank("vel"));
  9. System.out.println(StringUtils.isBlank("  vel "));
  10.    }
  11.  }
 Output : 

  true
  true
  true
  false
  false

Oracle Identity Management Components 11g Suite

Oracle Identity Management Components
Oracle Identity Management 11g includes the following components.

Oracle Identity Manager

Oracle Identity Manager (OIM) typically answers the question "Who has access to What,
When, How, and Why?". OIM is designed to administer both intranet and extranet user access
privileges across a company's resources throughout the entire identity management life cycle,
from initial on-boarding to final de-provisioning of an identity. In extranet environments,
OIM’s superior scalability allows enterprises to support millions of customers accessing a
company’s resources using traditional clients (e.g., browsers) or smart phones.

Oracle Identity Analytics

Oracle Identity Analytics (OIA) brings a new dimension to Oracle Identity Management in the
area of identity and access governance. OIA helps you address regulatory mandates, automate
processes, and quickly make compliance a repeatable and sustainable part of business. OIA
provides a comprehensive solution for access certification (correlating identity and access data
across the enterprise), enterprise-level segregation of duties (SoD) enforcement, and an
identity warehouse designed to consolidate identities, resources, and entitlement information.

Oracle Access Manager

Oracle Access Manager (OAM) provides centralized, policy-driven services for
authentication, single sign-on (SSO), and identity assertion. OAM integrates with a broad
array of authentication mechanisms, third-party web servers and application servers, and
standards-based federated SSO solutions to ensure maximum flexibility and a well-integrated,
comprehensive web access control solution. OAM complements its own coarse-grained
authorization and attribute assertion capabilities by integrating with Oracle Entitlements
Server to provide fine-grained authorization to applications, portals, databases, and web
services.

Oracle Web Services Manager

Oracle Web Services Manager (OWSM) is to web services what Oracle Access Manager is to
web applications. OWSM is designed to protect access to multiple types of resources
including standards-compliant web services (Java EE, Microsoft .NET, PL/SQL, etc.);
service-oriented architecture (SOA) composites including Business Process Execution
Language (BPEL) and enterprise service bus (ESB) processes; and Oracle WebCenter’s
remote portlets. OWSM is delivered as part of Oracle SOA.

Oracle Identity Federation

Oracle Identity Federation (OIF) is a self-contained solution enabling browser-based, crossdomain single sign-on using industry standards (SAML, Liberty ID-FF, WS-Federation,
Microsoft Windows CardSpace). In addition, with a Fedlet packaged as a Web Archive
(WAR), a service provider can immediately federate with an identity provider without
requiring a full-blown federation solution in place.

Security Token Service

Oracle’s Security Token Service (STS) establishes a trust relationship between online partners
through web services. STS provides both standard (e.g., SAML, Kerberos) and proprietary
(e.g., PeopleSoft, Siebel) security token issuance, validation, and exchange. STS is part of
Identity and Access Management Suite Plus and Access Management Suite Plus.

Oracle Enterprise Single Sign-On

Oracle Enterprise Single Sign-On (eSSO) is a Microsoft Windows desktop-based suite of
products providing unified authentication and single sign-on to both thick- and thin-client
applications with no modification required to existing applications. Using Oracle eSSO,
enterprise users benefit from single sign-on to all of their applications, whether users are
connected to the corporate network, traveling away from the office, roaming between
computers, or working at a shared workstation.

Oracle Entitlements Server

Oracle Entitlements Server (OES) is a fine-grained authorization engine that externalizes,
unifies, and simplifies the management of complex entitlement policies. OES secures access
to application resources and software components (such as URLs, Enterprise JavaBeans, and
Java Server Pages) as well as arbitrary business objects (such as customer accounts or patient
records in a database). OES provides a centralized administration point for complex
entitlement policies across a diverse range of business and IT systems.

Oracle Adaptive Access Manager

Oracle Adaptive Access Manager (OAAM) provides resource protection through real-time
fraud prevention, software-based multifactor authentication, and unique authentication
strengthening. OAAM consists of two primary components that together create one of the
most powerful and flexible weapons in the war against fraud. Adaptive Strong Authenticator
provides multifactor authentication and protection mechanisms for sensitive information such
as passwords, tokens, account numbers, and other credentials. Adaptive Risk Manager
provides real-time and offline risk analysis, and proactive actions to prevent fraud at critical
log-in and transaction checkpoints.

Oracle Directory Services

Oracle Directory Server Enterprise Edition (ODSEE) offers best-of-breed Lightweight
Directory Access Protocol (LDAP)-based services recommended for heterogeneous
applications and multi-vendor environments. ODSEE is the industry-leading carrier-grade
directory solution.

Oracle Internet Directory (OID) provides Oracle Fusion Middleware components, Oracle
Fusion applications and in-house enterprise applications with a highly-scalable LDAP-based
mechanism for storing and accessing identity data such as user credentials (for
authentication), access privileges (for authorization), and profile information.

Oracle Virtual Directory (OVD) is designed to provide real-time identity aggregation and
transformation without data copying or data synchronization. OVD hides the complexity of
underlying data infrastructures by providing industry-standard LDAP and XML views of
existing enterprise identity information, without moving data from its native location.

Oracle Platform Security Services

Oracle Platform Security Services (OPSS) provides enterprise product development teams,
systems integrators, and independent software vendors with a standards-based, portable,
integrated, enterprise-grade security framework for Java Platform, Standard Edition (Java SE)
and Java Platform, Enterprise Edition (Java EE) applications. OPSS insulates developers from
the intricacies of tasks not directly related to application development by providing an
abstraction layer in the form of standards-based application programming interfaces. OPSS is
the security foundation for Oracle Fusion Middleware: all Oracle Fusion Middleware 11g

components and Oracle Fusion applications “consume” the OPSS framework’s services.

StringUtils.isNotEmpty

  • StringUtils.isNotEmpty("variable") function is used to check whether the string length is not 0 or null.
  • This function is null safe.
  • You can use this method with the help of commons-lang-2.6.jar.
  • You can download this jar by using the below link


  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4. public static void main(String[] args) {
  5.                  System.out.println(StringUtils.isNotEmpty(null));   
  6. System.out.println(StringUtils.isNotEmpty(""));      
  7. System.out.println(StringUtils.isNotEmpty(" "));     
  8. System.out.println(StringUtils.isNotEmpty("vel"));    
  9. System.out.println(StringUtils.isNotEmpty("  vel  "));
  10.    }
  11.  }

 Output : 
   false
   false
   true
   true
   true

StringUtils.isEmpty


  • StringUtils.isEmpty("variable") function is used to check whether the string length is 0 or null.
  • This function is null safe.
  • You can use this method with the help of commons-lang-2.6.jar.
  • You can download this jar by using the below link

             http://mvnrepository.com/artifact/commons-lang/commons-lang/2.6


  1.  package com.utilitySample;
  2.  import org.apache.commons.lang.StringUtils;

  3.  public class StringUtility {
  4. public static void main(String[] args) {
  5.                  System.out.println(StringUtils.isEmpty(null));
  6. System.out.println(StringUtils.isEmpty(""));
  7. System.out.println(StringUtils.isEmpty(" "));  
  8. System.out.println(StringUtils.isEmpty("vel"));
  9. System.out.println(StringUtils.isEmpty("  vel "));
  10.    }
  11.  }

Output :
 true
 true
 false
 false
 false






Generate ER diagram from Existing Oracle DB using Data Modeler

The following steps will describe how to generate Database/ER diagram from an existing Oracle DB using Oracle Data Modeler,

1. In Oracle Data Modeler, select File -> Import -> Data Dictionary


2. In data dictionary import wizard step 1 connect Database, select Add button and provide existing Database connection details and click connect,


3. Select the added Database and click next, In step 2 Select schema/Database select the schema to import and click Next.

4. In step 3 Select objects to import,  select the objects to import and click Next.

5. In step 4 Generate design, click finish. The ER diagram will be generated.


IDAM Basics and Terminologies

Identity and Access Management

IDAM is IDentity and Access Management.
IDAM  helps in Providing the right people with right access at the right time

Identity

In general terms Identity is nothing but an object or person identified by a unique Id.
For example each employee is an organization is an identity.
Each employee has a Employee ID which is unique. So employee Id is the unique ID which differentiates the Identity Employee
Each Identity(employee) have multiple attributes some of which may be unique.

Identity Management:

Identity  Management is the process of managing each identity.
This area is comprised of user management, password management, role/group management and user/group provisioning.
Some of the user management functions should be centralized while others should be delegated to end-users. Delegated administration allows an enterprise to directly distribute workload to user departmental units.
Self-service is another key concept within user management. Through self-profile management service an enterprise benefits from timely update and accurate maintenance of identity data.
User management requires an integrated workflow capability to approve some user actions such as user account provisioning and de-provisioning.

Access Management:

Access management deals with the access rights of each  identity.
It verifies if the user validity and also the access right of the identity on a resource.

  •    Authentication:
        Authentication is the module through which a user provides sufficient credentials to gain initial access to  an application system or a particular resource.

  •    Authorization:
     Authorization is the module that determines whether a user is permitted to access a particular resource.

Terminologies:

Provisioning:

Provisioning is the process of creating an user account into the target system.
In provisioning data flow is from IDM system to Target system.(Pushing of data from IDM).
Example: Whenever any user is created in IDM system, we create the same user in Active directory. (i.e. The user is provisioned in Active Directory).

Reconciliation:

Reconciliation is the process of creating user accounts in IDM system from other system.
In reconciliation data flow is from some other resource or system to IDM system.(Pulling of data towards IDM system).
Example: Whenever a user is on boarded into an organization his/her data is initially loaded into HR database. IDM system pulls the user records from HR database and updates its own repository. (i.e. The user is reconciled into IDM system from HR system)

Types of reconciliation:

     There are two types of reconciliation:

  •     Trusted Reconciliation
In trusted reconciliation a user is created/updated in IDM system.
While reconciliation if the user is not present it creates the user in IDM system. If he is already present it updates the attributes of the user.

Example: If we run a trusted reconciliation from HR system, the user present in HR system is created in IDM system. If he is already present his attribute such as E-mail, phone, address etc., may get updated if there is any changes.

Also called as Authoritative reconciliation.               

  •     Target Reconciliation
In Target Reconciliation the user account is created in IDM system and not the user itself.

Example: If we run a target reconciliation against Active directory the user's Resource profile  gets updated in IDM system. So after reconciliation he resource profile gets updated with Active Directory resource.

If the user is present in target system and not present in IDM system we call those accounts as Orphan Accounts.

Also called as Non-Authoritative reconciliation.

GWT Basics

This section explains about the basic steps for setting up GWT environment in eclipse.
  • GWT requires JDK 1.6 or higher so the very first requirement is to have JDK installed in your machine.
  • Install GWT SDK and plugin for eclipse. you can download the plugins from GWT plugins for eclipse. After successful setup your eclipse will display a google icon as shown below 

Gwt icons loaded in eclipse
In this section we will know about the basics of a GWT application. A GWT application consists of four parts  

  • Module descriptors
  • public resources
  • client-side code
  • server-side code

Module Descriptors

A module descriptor is the configuration file in the form of XML which is used to configure a GWT application. A module descriptor file extension is *.gwt.xml, where * is the name of the application and this file should reside in the project's root.

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='mygwttry'>

  <!-- Inherit the core Web Toolkit stuff.                        -->
  <inherits name='com.google.gwt.user.User'/>

  <!-- Inherit the default GWT style sheet.  You can change       -->
   <inherits name='com.google.gwt.user.theme.standard.Standard'/>

    <!-- Other module inherits                                      -->

  <!-- Specify the app entry point class.                         -->
  <entry-point class='com.example.myproj.client.MyGwtTry'/>

<!-- specify the paths for static files like html ,css etc. -->
<public path='...'/>
<public path='...'/>

<!-- specify the paths for external javascript files -->
<script src="js-url"/>
<script src="js-url"/>

<!-- specify the paths for external style sheet files -->
<stylesheet src="css-url"/>
 <stylesheet src="css-url"/>

  <!-- Specify the paths for translatable code                    -->
  <source path='client'/>
  <source path='shared'/>

</module>


























Public resources

These are all files referenced by your GWT module, such as Host HTML page, CSS or images. The location of these resources can be configured using <public path="path" /> element in module configuration file.


 Client-side code

This is the actual Java code written implementing the business logic of the application .The GWT compiler translates into JavaScript, which will eventually run inside the browser. The location of these resources can be configured using <source path="path" /> element in module configuration file.

 For example Entry Point code will be used as client side code and its location will be specified using <entry-point class='com.example.myproj.client.MyGwtTry'/>

When a module is loaded, every entry point class is instantiated and its EntryPoint.onModuleLoad() method gets called.

  1.  import com.google.gwt.core.client.EntryPoint;
  2.  
  3.  public class MyGwtTry implements EntryPoint {
  4.   
  5. public void onModuleLoad() {
  6.  
  7. private final MyServiceProgAsync myasyn=GWT.create(MyServiceProg.class);
  8.  
  9. RootPanel.get().add(vertWid()); 
  10. }

  11. }

Server-side code

This is the server side part of your application and its very much optional. If you are not doing any backend processing with-in your application then you do not need this part, but if there is some processing required at backend and your client-side application interact with the server then you will have to develop these components.