//# 0 errors, 99 messages
//#
/*
    //#BasicUserAutoProvision.java:1:1: class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
* Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  The ASF licenses this file to You
* under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.  For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
package org.apache.roller.weblogger.ui.core.security;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.pojos.User;

/**
 * @author Elias Torres (<a href="mailto:eliast@us.ibm.com">eliast@us.ibm.com</a>)
 * 
 */
public class BasicUserAutoProvision implements AutoProvision {
    //#BasicUserAutoProvision.java:31: method: void org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision.org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision()
    //#BasicUserAutoProvision.java:31: end of method: void org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision.org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision()
  
  private static Log log = LogFactory.getFactory().getInstance(BasicUserAutoProvision.class);
    //#BasicUserAutoProvision.java:33: method: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision.org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init
    //#BasicUserAutoProvision.java:33: Warning: method not available
    //#    -- call on LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init
    //#    unanalyzed callee: LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#BasicUserAutoProvision.java:33: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#output(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision]
    //#output(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): __Dispatch_Table.execute()Z
    //#output(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): log
    //#output(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): org/apache/roller/weblogger/ui/core/security/AutoProvision.__Descendant_Table[org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision]
    //#presumption(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): org.apache.commons.logging.LogFactory:getFactory(...)@33 != null
    //#post(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): org/apache/roller/weblogger/ui/core/security/AutoProvision.__Descendant_Table[org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): __Dispatch_Table.execute()Z == &execute
    //#post(org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init): init'ed(log)
    //#BasicUserAutoProvision.java:33: end of method: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision.org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision__static_init

  /*
   * (non-Javadoc)
   * 
   * @see org.apache.roller.weblogger.ui.core.security.AutoProvision#execute()
   */
  public boolean execute() {
    User ud = CustomUserRegistry.getUserDetailsFromAuthentication();
    //#BasicUserAutoProvision.java:41: method: bool org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision.execute()
    //#input(bool execute()): log
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_EMAIL_LDAP_ATTRIBUTE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_LOCALE_LDAP_ATTRIBUTE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_NAME_LDAP_ATTRIBUTE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_SNAME_LDAP_ATTRIBUTE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_TIMEZONE_LDAP_ATTRIBUTE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.EMAIL_LDAP_PROPERTY
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.LOCALE_LDAP_PROPERTY
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.NAME_LDAP_PROPERTY
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.SNAME_LDAP_PROPERTY
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.TIMEZONE_LDAP_PROPERTY
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java.lang.Boolean.FALSE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java.lang.Boolean.TRUE
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.log
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/RollerUserDetails.__Descendant_Table[org/apache/roller/weblogger/ui/core/security/RollerUserDetails]
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/RollerUserDetails.__Descendant_Table[others]
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/RollerUserDetails.__Dispatch_Table.getFullName()Ljava/lang/String;
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/RollerUserDetails.__Dispatch_Table.getLocale()Ljava/lang/String;
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/RollerUserDetails.__Dispatch_Table.getScreenName()Ljava/lang/String;
    //#input(bool execute()): org/apache/roller/weblogger/ui/core/security/RollerUserDetails.__Dispatch_Table.getTimeZone()Ljava/lang/String;
    //#output(bool execute()): return_value
    //#pre[1] (bool execute()): (soft) log != null
    //#pre[2] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_EMAIL_LDAP_ATTRIBUTE)
    //#pre[3] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_LOCALE_LDAP_ATTRIBUTE)
    //#pre[4] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_NAME_LDAP_ATTRIBUTE)
    //#pre[5] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_SNAME_LDAP_ATTRIBUTE)
    //#pre[6] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.DEFAULT_TIMEZONE_LDAP_ATTRIBUTE)
    //#pre[7] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.EMAIL_LDAP_PROPERTY)
    //#pre[8] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.LOCALE_LDAP_PROPERTY)
    //#pre[9] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.NAME_LDAP_PROPERTY)
    //#pre[10] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.SNAME_LDAP_PROPERTY)
    //#pre[11] (bool execute()): (soft) init'ed(org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.TIMEZONE_LDAP_PROPERTY)
    //#pre[12] (bool execute()): (soft) org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.log != null
    //#presumption(bool execute()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@46 != null
    //#presumption(bool execute()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@46 != null
    //#presumption(bool execute()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@48 != null
    //#post(bool execute()): return_value == 1
    //#unanalyzed(bool execute()): Effects-of-calling:javax.naming.directory.Attributes:get
    //#unanalyzed(bool execute()): Effects-of-calling:javax.naming.directory.Attribute:get
    //#unanalyzed(bool execute()): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(bool execute()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.context.SecurityContextHolder:getContext
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.context.SecurityContext:getAuthentication
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.Authentication:getPrincipal
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.userdetails.UserDetails:instanceof
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.userdetails.UserDetails:getUsername
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.userdetails.UserDetails:getPassword
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.userdetails.UserDetails:isEnabled
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setId
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setUserName
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getProperty
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setPassword
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setEnabled
    //#unanalyzed(bool execute()): Effects-of-calling:java.util.Locale:getDefault
    //#unanalyzed(bool execute()): Effects-of-calling:java.util.Locale:toString
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setLocale
    //#unanalyzed(bool execute()): Effects-of-calling:java.util.TimeZone:getDefault
    //#unanalyzed(bool execute()): Effects-of-calling:java.util.TimeZone:getID
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setTimeZone
    //#unanalyzed(bool execute()): Effects-of-calling:java.util.Date
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setDateCreated
    //#unanalyzed(bool execute()): Effects-of-calling:getScreenName
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setScreenName
    //#unanalyzed(bool execute()): Effects-of-calling:getFullName
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setFullName
    //#unanalyzed(bool execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setEmailAddress
    //#unanalyzed(bool execute()): Effects-of-calling:getTimeZone
    //#unanalyzed(bool execute()): Effects-of-calling:getLocale
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.userdetails.ldap.LdapUserDetails:instanceof
    //#unanalyzed(bool execute()): Effects-of-calling:org.acegisecurity.userdetails.ldap.LdapUserDetails:getAttributes
    
    if(ud != null) {
      UserManager mgr;
      try {
        mgr = WebloggerFactory.getWeblogger().getUserManager();
    //#BasicUserAutoProvision.java:46: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: bool execute()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#BasicUserAutoProvision.java:46: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: bool execute()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
        mgr.addUser(ud);
    //#BasicUserAutoProvision.java:47: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.UserManager:addUser(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: bool execute()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.UserManager:addUser(User)
        WebloggerFactory.getWeblogger().flush();
    //#BasicUserAutoProvision.java:48: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: bool execute()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#BasicUserAutoProvision.java:48: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: bool execute()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
      } catch (WebloggerException e) {
        log.warn("Error while auto-provisioning user from SSO.", e);
    //#BasicUserAutoProvision.java:50: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
    //#    method: bool execute()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:warn(Object, Throwable)
      }
    }

    return true;
    //#BasicUserAutoProvision.java:54: end of method: bool org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision.execute()
  }

}
    //#BasicUserAutoProvision.java:: end of class: org.apache.roller.weblogger.ui.core.security.BasicUserAutoProvision
