1 Reply Latest reply: Sep 13, 2011 3:53 PM by rlutz RSS

Force JBoss to refresh cache

rlutz Newbie

Hey all, we're running JBoss 2.4.2, and I just finished up working on a simple little password reset system for our portal. Use case is basically

user gives email -> user receives email with session key and clicks it -> user inputs new password. I'm just updating the jbp_users table via JDBC (md5sum'ing their new password and inserting it in the table), and I can verify that the new hash is correct, but JBoss Portal seems to be caching the old login info.

 

My question is, can I force JBoss to forget its cached logins and recheck the database for changes, or is there a better way to do this? This isn't running inside a portlet, so I can't juse use getPortletContext().getAttribute("UserModule") to find a user by username and update their password that way.

 

Anyway, I'm sure I'm doing it wrong, but any help would be greatly appreciated. Thanks so much!

  • 1. Re: Force JBoss to refresh cache
    rlutz Newbie

    I tried changing jboss-service.xml to change the DefaultCacheTimeout to 0 from 1800, and also tried

    String domain = "jmx-console";
    ObjectName jaasMgr = new ObjectName("jboss.security:service=JaasSecurityManager");
    Object[] params = {domain};
    String[] signature = {"java.lang.String"};
    MBeanServer server = (MBeanServer) MBeanServerFactory.findMBeanServer(null).get(0);
    server.invoke(jaasMgr, "flushAuthenticationCache", params, signature);
    
    

    I also tried flushing the authenticationCache through the JMX web console, and that didn't seem to work either.

     

    I can verify that the new password hash is being inserted in the database properly, but JBoss doesn't seem to want to check for the new hash?

     

    I'm stumped