I am using Below registration Handler class..it is throughing an error in URL "/_nc_external/identity/sso/ui/AuthorizationError?ErrorCode=REGISTRATION_HANDLER_ERROR&ErrorDescription=Attempt+to+de-reference+a+null+object" please suggest a solution
global class GoogleOpenIDConnect implements Auth.RegistrationHandler{ global User createUser(Id portalId, Auth.UserData data){ User u = new User(); Profile p = [SELECT Id FROM profile WHERE name='Standard User']; u.username = data.username + '@salesforce.com'; u.email = data.email; u.lastName = data.lastName; u.firstName = data.firstName; String alias = data.username; if(alias.length() > 8) { alias = alias.substring(0, 8); } u.alias = alias; u.languagelocalekey = data.attributeMap.get('language'); u.localesidkey = data.locale; u.emailEncodingKey = 'UTF-8'; u.timeZoneSidKey = 'America/Los_Angeles'; u.profileId = p.Id; return u; }
global void updateUser(Id userId, Id portalId, Auth.UserData data){ User u = new User(id=userId); u.username = data.username + '@salesforce.com'; u.email = data.email; u.lastName = data.lastName; u.firstName = data.firstName; String alias = data.username; if(alias.length() > 8) { alias = alias.substring(0, 8); } u.alias = alias; u.languagelocalekey = data.attributeMap.get('language'); u.localesidkey = data.locale; update(u); } }
I tried with new code but giving an error::: Missing required field UserName,Email, NickName
Please tell me why this error coming
global class GoogleOpenIDConnect implements Auth.RegistrationHandler{ global User createUser(Id portalId, Auth.UserData data){ User u = new User(); System.debug(data); Profile p = [SELECT Id FROM profile WHERE name='Standard User']; u.username = data.username; u.email=data.email; u.lastName = data.lastName; u.firstName = data.firstName; u.timeZoneSidKey = 'America/Los_Angeles'; u.localesidkey = 'en_US'; u.emailEncodingKey = 'ISO-8859-1'; u.languagelocalekey = 'en_US';
http://dice.neko-san.net/2014/01/using-google-as-an-open-id-connect-authentication-source-for-salesforce-com/
http://www.tquila.com/blog/2014/02/04/allow-your-salesforce-users-log-using-their-google-credentials
All Answers
http://dice.neko-san.net/2014/01/using-google-as-an-open-id-connect-authentication-source-for-salesforce-com/
http://www.tquila.com/blog/2014/02/04/allow-your-salesforce-users-log-using-their-google-credentials
please suggest a solution
global class GoogleOpenIDConnect implements Auth.RegistrationHandler{
global User createUser(Id portalId, Auth.UserData data){
User u = new User();
Profile p = [SELECT Id FROM profile WHERE name='Standard User'];
u.username = data.username + '@salesforce.com';
u.email = data.email;
u.lastName = data.lastName;
u.firstName = data.firstName;
String alias = data.username;
if(alias.length() > 8) {
alias = alias.substring(0, 8);
}
u.alias = alias;
u.languagelocalekey = data.attributeMap.get('language');
u.localesidkey = data.locale;
u.emailEncodingKey = 'UTF-8';
u.timeZoneSidKey = 'America/Los_Angeles';
u.profileId = p.Id;
return u;
}
global void updateUser(Id userId, Id portalId, Auth.UserData data){
User u = new User(id=userId);
u.username = data.username + '@salesforce.com';
u.email = data.email;
u.lastName = data.lastName;
u.firstName = data.firstName;
String alias = data.username;
if(alias.length() > 8) {
alias = alias.substring(0, 8);
}
u.alias = alias;
u.languagelocalekey = data.attributeMap.get('language');
u.localesidkey = data.locale;
update(u);
}
}
I tried with new code but giving an error::: Missing required field UserName,Email, NickName
Please tell me why this error coming
global class GoogleOpenIDConnect implements Auth.RegistrationHandler{
global User createUser(Id portalId, Auth.UserData data){
User u = new User();
System.debug(data);
Profile p = [SELECT Id FROM profile WHERE name='Standard User'];
u.username = data.username;
u.email=data.email;
u.lastName = data.lastName;
u.firstName = data.firstName;
u.timeZoneSidKey = 'America/Los_Angeles';
u.localesidkey = 'en_US';
u.emailEncodingKey = 'ISO-8859-1';
u.languagelocalekey = 'en_US';
String alias = data.firstName + data.lastName;
if(alias.length() > 8) {
alias = alias.substring(0, 8);
}
u.alias = alias;
u.profileId = p.Id;
return u;
}
global void updateUser(Id userId, Id portalId, Auth.UserData data){
User u = new User(id=userId);
System.debug(data);
u.email = data.email;
u.lastName = data.lastName;
u.firstName = data.firstName;
update(u);
}
}