I realise this is a late reply, but hopefully someone will find this answer useful.
Step 1) override the getUserStatus method in your custom loginModule
ie.
| @Override
| protected UserStatus getUserStatus(String inputPassword){
| MyUserVO user=getUserService().getUserByName(getUsernameAndPassword()[0]);
| if (!myLoginCheck(user)){
| return MyUserStatus.MY_ERROR_MESSAGE_1;
| }
| return super.getUserStatus(inputPassword);
| }
|
Step 2) pseudo extend UserStatus (the constructor is actually private so you need to
reflect it). note: getUserStatus is called in the Login method if the login is successful
- so remember to put any logic for a failure is the Abort method and successful login code
in the Commit method
ie.
| public class MyUserStatus {
| public static UserStatus
MY_ERROR_MESSAGE_1=naughtyCallOfPrivateConstructor(33945);
| private static UserStatus naughtyCallOfPrivateConstructor(int i){
| try{
| Class<?> c = Class.forName(UserStatus.class.getCanonicalName());
| Constructor[] allConstructors = c.getDeclaredConstructors();
| for (Constructor ctor : allConstructors) {
| ctor.setAccessible(true);
| UserStatus res=(UserStatus)ctor.newInstance(i);
| ctor.setAccessible(false); //return it just in case this causes an
issue elsewhere
| return res;
| }
| }catch(IllegalAccessException e){
| e.printStackTrace();
| }catch(Exception e){
| e.printStackTrace();
| }
| return null;
| }
| }
|
Step 3) change your portal-server.war/login.jsp to use the new MyUserStatus - ie.
| else if
(MyUserStatus.MY_ERROR_MESSAGE_1.equals(request.getAttribute("org.jboss.portal.userStatus"))){
| out.println(rb.getString("ACCOUNT_MY_ERROR_MESSAGE_1"));
| }
|
and don't forget to put the error message text in the resources file
(Resource.properties in conf/bundles/)
hope this helps,
M
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4233208#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...