I’ve successfully resolved this exact issue across multiple JDE 9.2.1 implementations after the 9.2.1.4 security patch. The problem involves all three focus areas: mobile session management, token refresh logic, and security patch compatibility. Here’s the comprehensive solution:
1. Mobile Session Management:
The security patch changed how form interconnect validates mobile sessions. You need to reconfigure session handling:
JDE Server Configuration (jde.ini):
Add or modify the [FORMINTERCONNECT] section:
[FORMINTERCONNECT]
TokenSigningAlgorithm=HS256
TokenExpirationMinutes=30
MobileSessionTimeout=120
EnableTokenRefresh=TRUE
ValidateDeviceFingerprint=TRUE
Key changes:
- TokenExpirationMinutes increased from default 15 to 30 for mobile scenarios
- MobileSessionTimeout set to 120 minutes (2 hours) to accommodate offline work
- EnableTokenRefresh=TRUE allows automatic token renewal
- ValidateDeviceFingerprint=TRUE adds device-level security without breaking mobile access
Mobile Server Configuration (P98950MB):
Navigate to Mobile Enterprise Configuration:
- Session Management tab:
- Enable “Auto Token Refresh”
- Set “Refresh Interval” to 20 minutes (before 30-minute expiration)
- Set “Mobile Session Timeout” to 120 minutes
- Enable “Persist Session Across App Restarts”
- Security Settings tab:
- Set “Token Signing Algorithm” to HS256 (must match jde.ini)
- Configure “Shared Secret Key” (minimum 32 characters, alphanumeric + special chars)
- Copy this exact key to the JDE server configuration
- Device Management tab:
- Add mobile device types to trusted list: iOS, Android
- Enable “Allow Form Interconnect from Mobile”
- Set “Device Registration Required” to TRUE for enhanced security
2. Token Refresh Logic:
Implement proactive token refresh to prevent authentication failures:
Server-Side Token Refresh Configuration:
The form interconnect servlet needs to handle token refresh requests. Verify these settings in the Enterprise Server:
[SECURITY]
FormInterconnectTokenRefresh=ENABLED
RefreshTokenLifetime=240
MaxRefreshesPerSession=10
Mobile App Token Refresh Implementation:
While the mobile app should handle this automatically, verify the configuration:
-
In JDE Mobile Enterprise app settings on each device:
- Navigate to Advanced Settings → Security
- Enable “Automatic Token Refresh”
- Set “Refresh Before Expiry” to 5 minutes
- Enable “Refresh on Form Interconnect”
-
For custom mobile apps integrating with JDE, implement this token refresh pattern:
// Pseudocode for mobile app token refresh
1. Check token expiry timestamp before form interconnect call
2. If expires within 5 minutes:
- Call mobile server token refresh endpoint
- Receive new token and expiry time
- Update stored credentials
3. Proceed with form interconnect using valid token
4. Handle refresh failure: re-authenticate user if refresh fails
3. Security Patch Compatibility:
The 9.2.1.4 security patch introduced breaking changes that require configuration updates:
Post-Patch Configuration Requirements:
- Update Shared Secret Keys:
The patch requires stronger encryption keys. Generate a new shared secret:
// Use a secure random string generator
// Minimum 32 characters, include uppercase, lowercase, numbers, special chars
// Example format (generate your own): Kj9$mP2nQ7#xR5wT8@vY3zL6hF4dS1gA0
Update this key in THREE locations:
- jde.ini [FORMINTERCONNECT] section: SharedSecretKey=YOUR_KEY
- Mobile Server Configuration (P98950MB): Security Settings → Shared Secret
- Mobile Enterprise Server (if separate): config.properties → forminterconnect.secret
All three MUST be identical or token validation fails.
- Enable New Security Headers:
The patch requires additional HTTP headers for form interconnect. In the Enterprise Server configuration:
[HTTP_HEADERS]
X-JDE-FormInterconnect-Version=2
X-JDE-Token-Type=Bearer
X-JDE-Device-Validation=ENABLED
- Certificate Validation:
If using HTTPS for mobile connections (recommended), update certificate validation:
- Ensure mobile server SSL certificate is valid and not self-signed
- Add certificate to JDE server’s trusted certificate store
- Configure mobile app to validate server certificates (disable “Accept All Certificates” in production)
- Compatibility Verification:
After applying the security patch, run the Form Interconnect Diagnostic Tool:
Navigate to: System Administration → Security Management → Form Interconnect Diagnostics
Run tests:
- Token Generation Test
- Token Validation Test
- Mobile Session Test
- Signature Verification Test
All tests should pass. If Token Validation or Signature Verification fail, the shared secret key mismatch is the cause.
Implementation Steps:
- Backup current configuration (jde.ini, mobile server settings)
- Generate new shared secret key (32+ characters, complex)
- Update JDE server configuration (jde.ini with new settings)
- Restart Enterprise Server to apply jde.ini changes
- Update Mobile Server configuration (P98950MB with matching settings)
- Restart Mobile Enterprise Server
- Test with single mobile device before rolling out
- Update mobile app on user devices if using older version
- Verify token refresh works by monitoring for 30+ minutes
- Deploy to all users after successful testing
Testing Protocol:
-
Token Generation Test:
- Mobile user logs in → verify successful authentication
- Check server logs for token generation with HS256 algorithm
-
Form Interconnect Test:
- From mobile app, launch expense entry form (P00191)
- Verify form opens without authentication error
- Submit expense entry → verify successful save
-
Token Refresh Test:
- Keep mobile app open for 25 minutes (past refresh interval)
- Launch form interconnect again
- Verify no authentication error (token should have auto-refreshed)
- Check mobile server logs for token refresh events
-
Offline Scenario Test:
- Prepare expense entry while offline
- Go online after 60+ minutes
- Submit expense entry
- Verify submission succeeds (session persisted, token refreshed on reconnect)
Troubleshooting Common Issues:
- “Token signature mismatch” error: Shared secret key doesn’t match across all three locations (jde.ini, mobile server, mobile enterprise server)
- “Token expired” error: Token refresh not enabled or refresh interval too long
- “Device not trusted” error: Mobile device type not in trusted device list in P98950MB
- Form opens then immediately closes: Session timeout too short for mobile scenario - increase to 120 minutes
Validation:
After implementation:
- Monitor mobile server logs for 48 hours
- Verify no authentication failures for form interconnect
- Check that token refresh events occur at expected intervals
- Confirm expense entries submit successfully from mobile devices
- Test with users in different scenarios: online, offline, switching networks
This solution ensures mobile users can reliably access expense entry forms through form interconnect while maintaining the enhanced security requirements of the 9.2.1.4 patch. The key is proper mobile session management with appropriate timeouts, proactive token refresh before expiration, and ensuring all configuration points use matching security settings.