Core Security Patterns: Best Practices and Strategies for J2EE, Web Services, and Identity Management