question: public void putExternalProperty ( SSOToken clientToken , String key , String value ) throws SessionException { try { sessionUtilsWrapper . checkPermissionToSetProperty ( clientToken , key , value ) ; } catch ( SessionException se ) { fireSessionEvent ( SessionEventType . PROTECTED_PROPERTY ) ; sessionLogging . logEvent ( toSessionInfo ( ) , SessionEventType . PROTECTED_PROPERTY ) ; throw se ; } internalPutProperty ( key , value ) ; debug . message ( "Updated protected property after validating client identity and permissions" ) ; }
target:  Sets the key-value pair in the InternalSession property table if it is not protected. If it is protected client should have permission to set it. This method is to be used in conjuction with SessionRequestHandler/SessionService invocation path If the property is protected, an attempt to remotely set a protected property is logged and the method throws an Exception. Otherwise invocation is delegated to internalPutProperty() Note that package default access is being used