The session persistence after password reset in EBOM management is a configuration gap affecting all three critical areas. Here’s the comprehensive solution:
1. Session Invalidation Policy Configuration:
Teamcenter doesn’t automatically invalidate active sessions when passwords are reset - this must be explicitly configured. You need to enable forced session termination on credential changes:
Navigate to Teamcenter System Administration:
- Go to Security > Session Management
- Enable ‘Invalidate Active Sessions on Password Change’
- Set ‘Session Invalidation Scope’ to ‘All User Sessions’ (not just ‘Current Session’)
- Enable ‘Force Re-authentication After Credential Update’
For EBOM management specifically, there’s an additional module-level setting:
- Open EBOM Management preferences
- Under Security tab, enable ‘Strict Session Validation’
- Set ‘Session Credential Check Frequency’ to ‘On Every Request’ (default is ‘On Session Start’)
This ensures EBOM validates the user’s current credentials on each operation, not just when the session begins.
2. Web Server Timeout Configuration Alignment:
The session timeout needs to be consistently configured across all layers. Your 30-minute timeout should be set in multiple places:
Application Server (Tomcat/WebLogic):
Edit web.xml in your EBOM deployment:
<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<max-age>1800</max-age>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
Teamcenter Preference:
- Organization > Preferences > Session
- Set ‘Session Timeout’ to 30 minutes
- Enable ‘Enforce Timeout on Idle Only’ (not on active sessions)
- Set ‘Session Timeout Warning’ to 5 minutes (warns users before timeout)
Load Balancer/Reverse Proxy:
If using a load balancer, ensure session affinity timeout matches:
- Set sticky session timeout to 30 minutes
- Enable session draining on password reset events
- Configure health check to validate session state
The key issue is when these timeouts don’t align - the longest one effectively becomes the actual timeout.
3. Password Reset Handling Implementation:
Implement a custom event handler that triggers on password reset events. This handler should:
- Identify all active sessions for the user whose password changed
- Invalidate those sessions in the session store
- Send session termination signals to all connected clients
- Log the invalidation for security audit purposes
Create a Java event handler class that listens for password change events:
// Pseudocode - Key implementation steps:
1. Register listener for UserCredentialChangeEvent
2. On event trigger, query SessionManager for user's active sessions
3. Iterate through sessions and call session.invalidate() for each
4. Clear any cached credentials from Redis/session store
5. Broadcast logout message to connected EBOM clients
6. Log security event with user ID, timestamp, session IDs
// See documentation: Teamcenter Event Handler Guide Section 7.3
Register this handler in Teamcenter:
- Go to Business Modeler IDE
- Create new Event Handler
- Attach to ‘User Credential Change’ event
- Deploy to all method servers
Additional Security Hardening:
Implement Concurrent Session Limits:
- Set maximum concurrent sessions per user to 2
- When limit exceeded, terminate oldest session automatically
- Configure in Organization preferences under Session Management
Enable Session Activity Monitoring:
- Track IP address and user agent for each session
- If these change mid-session, require re-authentication
- Detects session hijacking attempts
Configure Forced Logout on Suspicious Activity:
- Multiple failed authentication attempts
- Access from new geographic location
- Unusual EBOM data access patterns
Immediate Remediation Steps:
- Identify all currently active sessions: Query the session table in Teamcenter database
- For users who recently reset passwords, manually invalidate their sessions
- Force all EBOM users to log out and back in after implementing configuration changes
- Monitor session logs for the next 48 hours to verify proper timeout behavior
- Conduct security audit to check if unauthorized access occurred during the vulnerability window
Testing and Verification:
After implementing these changes:
- Have a test user log into EBOM management
- Note their session ID from the logs
- Reset the test user’s password through the standard process
- Verify the original session is immediately invalidated (check session table)
- Confirm the user cannot perform any EBOM operations with the old session
- Verify session timeout triggers at exactly 30 minutes of inactivity
- Test that warning appears 5 minutes before timeout
This comprehensive approach addresses the session invalidation policy gap, aligns timeout configurations across all layers, and implements proper password reset handling to eliminate the security risk in EBOM management.