图书前言

前    言

自2008年以来,我一直担任软件开发工程师和软件开发培训师。可以这么说,虽然我同时喜欢这两个角色,但我还是倾向于成为一个培训师/老师。对我而言,分享知识和帮助他人提高技能一直是我放在首要位置的事情。但我坚信,在这个领域,不能非此即彼。在某种程度上,任何软件开发人员都必须扮演培训师或指导者的角色,如果不首先对如何在真实场景中应用所讲授的内容有一个透彻的理解,就不能胜任软件开发领域的培训师。

随着经验的积累,我逐渐理解了非功能性软件需求的重要性,比如安全性、可维护性、性能等。甚至可以说,我花费在学习非功能性方面的时间比我学习新技术和框架上的时间还多。实际上,发现和解决功能性问题通常比解决非功能性问题要容易得多。这可能就是我遇到的许多开发人员害怕处理混乱的代码、内存相关问题、多线程设计问题,当然还有安全漏洞的原因所在。

当然,安全性是最关键的非功能性软件特性之一。而Spring Security是当今应用程序中最广泛使用的安全框架之一。这是因为Spring Framework——Spring生态系统——被认为是Java和JVM领域中用于开发企业应用程序的技术的领导者。

但我特别关注的是,人们在学习正确使用Spring Security保护应用程序免受常见漏洞侵害时所面临的困难。人们总是可以在网上找到关于Spring Security的所有详细信息。但是,要将它们按照正确的顺序组合在一起以便只需花费最少的精力就可以使用该框架,还需要花费大量的时间和积累大量的经验。此外,不完整的知识可能会导致人们创建出难以维护和开发的解决方案,甚至可能暴露安全漏洞。很多时候,从事应用程序开发的团队都会向我咨询,发现Spring Security使用不当。而且,在许多情况下,其主要原因是对如何使用Spring Security缺乏透彻的理解。

正因为如此,我决定写一本书来帮助Spring开发人员理解如何正确使用Spring Security。《Spring Security实战》应该成为一项资源,帮助那些不了解Spring Security的人逐渐理解它。归根结蒂,我希望《Spring Security实战》能给读者带来巨大的价值,让他们节省学习Spring Security的时间,以及避免在应用程序中引入所有可能的安全漏洞。