try {
PumaLocator pumaLocator = portalPumaHome.getLocator();
PumaProfile profile = portalPumaHome.getProfile();
List<User> users = pumaLocator.findUsersByAttribute(attribute, loginname);
if (users != null && users.size() > 0)
{
// insert happy path here
} else {
// insert logic for "Invalid username/password" error message
System.out.println("Invalud username/password");
}
} catch (PumaSystemException pse) {
// insert logic for communication exception with user repository
System.out.println("We are currently experiencing some technical problems. Please try again later.");
} catch (Exception e) {
// insert logic for other exceptions
System.out.println("Oops, we screwed something up.");
}
As shown in the code snippet, you're expecting that the
PumaSystemException is returned when the user repository could not be reached. This is only true when allowOperationIfReposDown is set to false. When the allowOperationIfReposDown="true", the PumaLocator operation would not return a PumaSystemException on CommunicationException with the user repository.Therefore, your error message for this scenario will not be returned. To work your way around this, you may add an additional logic wherein you try to lookup the bind id when the user your trying to look for could not be found:
try {
PumaLocator pumaLocator = portalPumaHome.getLocator();
PumaProfile profile = portalPumaHome.getProfile();
List<User> users = pumaLocator.findUsersByAttribute(attribute, loginname);
if (users != null && users.size() > 0)
{
// insert happy path here
} else {
// adding logic to check if user repository is available
List<User> bindusers = pumaLocator.findUsersByAttribute(attribute, bindusername);
if(bindusers != null && bindusers.size() > 0) {
// Invalid username/password
System.out.println("Invalid username/password");
} else {
// insert logic for communication exception with user repository
System.out.println("We are currently experiencing some technical problems. Please try again later.");
}
}
} catch (Exception e) {
// insert logic for other exceptions
System.out.println("Oops, we screwed something up.");
}
And that's it, hope this helps.
No comments:
Post a Comment