Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Spring Security
Spring Security

Spring Security: Effectively secure your web apps, RESTful services, cloud apps, and microservice architectures , Fourth Edition

eBook
$9.99 $31.99
Paperback
$39.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Spring Security

Anatomy of an Unsafe Application

Security is arguably one of the most critical architectural components of any web-based application written in the 21st century. In an era where malware, criminals, and rogue employees are always present and actively testing software for exploits, smart and comprehensive use of security is a key element of any project for which you’ll be responsible.

This book is written to follow a pattern of development that, we feel, provides a useful premise for tackling a complex subject—taking a web-based application with a Spring 6 foundation, and understanding the core concepts and strategies for securing it with Spring Security 6. We complement this approach by providing sample code for each chapter in the form of complete web applications.

In this chapter, we will delve into an example scenario to highlight several prevalent security vulnerabilities. Our journey will commence by examining the fundamental principles of secure coding. We...

Exploring software architecture styles

Numerous businesses are acquiring computational capabilities from online cloud service platforms and embracing a primary reliance on the cloud for the development of most applications. This shift has prompted a transformation in the design of applications.

Figure 1.1 – Monolithic versus layered versus SOA versus microservices

Figure 1.1 – Monolithic versus layered versus SOA versus microservices

The selection of the most suitable application architecture is contingent upon your specific business requirements. We will explore four architectural options designed to facilitate digital transformation and tailored to meet general business needs

Monolithic architecture

A traditional architecture where the entire application is constructed as a unified and closely integrated entity.

While it is easy to develop and deploy initially, scaling and maintaining it can pose challenges as the project expands.

N-Tier architecture (layered architecture)

N-tier architecture, also...

Understanding security audit

It’s early in the morning at your job as a software developer for the Jim Bob Circle Pants Online Calendar (JBCPCalendar.com), and you’re halfway through your first cup of coffee when you get the following email from your supervisor:

Figure 1.2 – The email from the supervisor

Figure 1.2 – The email from the supervisor

What? You didn’t think about security when you designed the application? In fact, at this point, you are not even sure what a security audit is. Sounds like you’ll have a lot to learn from the security auditors! Later in this chapter, we will review what an audit is, along with the results of an audit. First, let’s spend a bit of time examining the application that’s under review.

Exploring the example application

Although we’ll be working through a contrived scenario as we progress through this book, the design of the application and the changes that we’ll make to it are drawn from the...

Addressing the security audit findings

In this section, we will meticulously examine the outcomes of our security audit, shedding light on the vulnerabilities and areas of concern within our application’s security landscape. We’ll dissect the audit results and embark on a journey to explore various effective strategies and patterns to secure and mitigate these identified risks. This chapter serves as a roadmap for enhancing the robustness of our application’s security, ensuring it stays resilient against potential threats and vulnerabilities.

Authentication

Authentication is one of two key security concepts that you must internalize when developing secure applications (the other being authorization). Authentication identifies who is attempting to request a resource. You may be familiar with authentication in your daily online and offline life, in very different contexts, as follows:

  • Credential-based authentication: When you log in to your web-based...

Technical requirements

We have endeavored to make the application as easy to run as possible by focusing on some basic tools and technologies that almost every Spring developer would have on their development machine. Nevertheless, we have provided the Getting started section as supplementary information in the Getting started with the JBCP calendar sample code section in the Appendix, Additional Reference Material.

The primary method for integrating with the sample code is providing projects that are compatible with Gradle and Maven. Since many IDEs have rich integration with Gradle and Maven, users should be able to import the code into any IDE that supports either Gradle or Maven. As many developers use Gradle and Maven, we felt this was the most straightforward method of packaging the examples. Whatever development environment you are familiar with, hopefully, you will find a way to work through the examples in this book.

Many IDEs provide Gradle or Maven tooling that can...

Summary

In this chapter, we have reviewed the common points of risk in an unsecured web application and the basic architecture of our example application. We began by scrutinizing the audit results, highlighting the areas of concern and potential vulnerabilities. The chapter then branched into key security concepts, including authentication, authorization, and database credential security. We also discussed the strategies for securing the application based on the spring framework.

In the next chapter, we’ll explore how to get Spring Security set up quickly and get a basic understanding of how it works.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Architect solutions that leverage Spring Security while remaining loosely coupled
  • Implement authentication and authorization with SAML2, OAuth 2, hashing, and encryption algorithms
  • Integrate Spring Security with technologies such as microservices, Kubernetes, the cloud, and GraalVM native images
  • Purchase of the print or Kindle book includes a free PDF eBook

Description

With experienced hackers constantly targeting apps, properly securing them becomes challenging when you integrate this factor with legacy code, new technologies, and other frameworks. Written by a Lead Cloud and Security Architect as well as CISSP, this book helps you easily secure your Java apps with Spring Security, a trusted and highly customizable authentication and access control framework. The book shows you how to implement different authentication mechanisms and properly restrict access to your app. You’ll learn to integrate Spring Security with popular web frameworks like Thymeleaf and Microservice and Cloud services like Zookeeper and Eureka, along with architecting solutions that leverage its full power while staying loosely coupled. You’ll also see how Spring Security defends against session fixation, moves into concurrency control, and how you can use session management for administrative functions. This fourth edition aligns with Java 17/21 and Spring Security 6, covering advanced security scenarios for RESTful web services and microservices. This ensures you fully understand the issues surrounding stateless authentication and discover a concise approach to solving those issues. By the end of this book, you’ll be able to integrate Spring Security 6 with GraalVM native images seamlessly, from start to finish.

Who is this book for?

If you’re a Java web developer or an architect with fundamental knowledge of Java 17/21, web services, and the Spring Framework, this book is for you. No previous experience with Spring Security is needed to get started with this book.

What you will learn

  • Understand common security vulnerabilities and how to resolve them
  • Implement authentication and authorization and learn how to map users to roles
  • Integrate Spring Security with LDAP, Kerberos, SAML 2, OpenID, and OAuth
  • Get to grips with the security challenges of RESTful web services and microservices
  • Configure Spring Security to use Spring Data for authentication
  • Integrate Spring Security with Spring Boot, Spring Data, and web applications
  • Protect against common vulnerabilities like XSS, CSRF, and Clickjacking

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jun 28, 2024
Length: 596 pages
Edition : 4th
Language : English
ISBN-13 : 9781835460115
Category :
Languages :
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Jun 28, 2024
Length: 596 pages
Edition : 4th
Language : English
ISBN-13 : 9781835460115
Category :
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 124.97
Mastering Spring Boot 3.0
$39.99
Modern API Development with Spring 6 and Spring Boot 3
$44.99
Spring Security
$39.99
Total $ 124.97 Stars icon
Banner background image

Table of Contents

26 Chapters
Part 1: Fundamentals of Application Security Chevron down icon Chevron up icon
Chapter 1: Anatomy of an Unsafe Application Chevron down icon Chevron up icon
Chapter 2: Getting Started with Spring Security Chevron down icon Chevron up icon
Chapter 3: Custom Authentication Chevron down icon Chevron up icon
Part 2: Authentication Techniques Chevron down icon Chevron up icon
Chapter 4: JDBC-based Authentication Chevron down icon Chevron up icon
Chapter 5: Authentication with Spring Data Chevron down icon Chevron up icon
Chapter 6: LDAP Directory Services Chevron down icon Chevron up icon
Chapter 7: Remember-me Services Chevron down icon Chevron up icon
Chapter 8: Client Certificate Authentication with TLS Chevron down icon Chevron up icon
Part 3: Exploring OAuth 2 and SAML 2 Chevron down icon Chevron up icon
Chapter 9: Opening up to OAuth 2 Chevron down icon Chevron up icon
Chapter 10: SAML 2 Support Chevron down icon Chevron up icon
Part 4: Enhancing Authorization Mechanisms Chevron down icon Chevron up icon
Chapter 11: Fine-Grained Access Control Chevron down icon Chevron up icon
Chapter 12: Access Control Lists Chevron down icon Chevron up icon
Chapter 13: Custom Authorization Chevron down icon Chevron up icon
Part 5: Advanced Security Features and Deployment Optimization Chevron down icon Chevron up icon
Chapter 14: Session Management Chevron down icon Chevron up icon
Chapter 15: Additional Spring Security Features Chevron down icon Chevron up icon
Chapter 16: Migration to Spring Security 6 Chevron down icon Chevron up icon
Chapter 17: Microservice Security with OAuth 2 and JSON Web Tokens Chevron down icon Chevron up icon
Chapter 18: Single Sign-On with the Central Authentication Service Chevron down icon Chevron up icon
Chapter 19: Build GraalVM Native Images Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(4 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
GYANARANJAN Jul 23, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is great guide to get started with spring security. It explains well how to setup security configurations and how to configure security during deployment. I recommend this to beginners wanting to learn spring security.
Amazon Verified review Amazon
Jorge Deflon Jul 15, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Software supports the modern economy, and ensuring application security is an increasingly important activity.Spring Security is a fundamental component of the most popular framework for developing enterprise applications: Spring.This book covers in a comprehensive and easy-to-understand way how to use this module to develop easily secure and reliable enterprise java applications.A guide that should not be missing in your arsenal
Amazon Verified review Amazon
Erica Jul 25, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Besides testing, security and authentication is definitely my weakest point 😮‍💨, and since I'm generally bothered by not being good at things 😒, I've been actively trying lately to get better at it.One of the ways I'm trying to achieve this is by purposely working on tasks in areas that I would like to improve in. Unfortunately, the project I'm currently working on is using a different tech stack than what I'm used to 🫤, and since I'd obviously like to get better working with my own tech stack as well, I decided to dive into "Spring Security". 😊So one of the first things that the book covers that I found useful is the different authentication methods. This section helped me to prepare a Confluence document to go over with the dev team so we could make a decision on which authentication method to use for our project.Another thing I found really useful was that the book explains the pros and cons of using 'SecurityContextHolder', 'UserDetailsService', and 'AuthenticationProvider'. It explains the use cases for each one (Yay! I'm learning about use cases! 😁🥳😅), like whether you're looking for simplicity or need more advanced features like remember-me services.Technically, I'm already familiar with most of those things because I learned how to implement them when I was in bootcamp. But to be honest, the bootcamp was really in-depth up until we started learning about security, and then it was kinda just like "Here's some snippets of code. Put this in such-and-such class". 😕 So it's a good thing that the book also walks you through adding, configuring, and implementing a custom 'UserDetailsService'.I also got a deep dive into OAuth 2 which previously, I honestly knew nothing about. 🥴😅 The book shows how to set up your own OAuth 2 application and explains the architecture behind it, which was great for a complete n00b like me. 🥴🤣😂It also went into the advanced features of Spring Security, like protection against Cross-Site Request Forgery (CSRF) and other common vulnerabilities (which was great because the whole CSRF thing consistently kicks my ass every time I have to link a backend to a frontend for a full stack application 😭🤣😂💀☠️). So I was pretty grateful for this section.The book also details how to configure security headers and goes into setting up security filter chains and using JWTs for securing endpoints. This part was especially helpful since JWT is what I'm most familiar with.The section on password encoding was definitely helpful because I'm a dunce when it comes to that too. 🥴😅 Thankfully, the book guides you on how to use PasswordEncoders for different security needs.Honestly, I think this book is a great resource for anyone who struggles with understanding Spring Security and I'd definitely recommend it! 👌🏽
Amazon Verified review Amazon
SOORAJ G THOMAS Jul 24, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Spring Security by Badr Nasslahsen is an essential addition to any developer’s library. Whether you're new to Spring Security or looking to enhance your existing knowledge, this book provides the tools and insights needed to secure your applications effectively. Highly recommended!
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.