DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library
Core Badge
Avatar

Horatiu Dan

DZone Core CORE

Senior R&D Software Engineer at Tangoe

Company website: https://www.tangoe.com/

Bucharest, RO

Joined May 2009

https://imhoratiu.wordpress.com/

About

Horatiu is an R&D software engineer with 20+ years of experience in software development, mostly related to multi-tier enterprise applications. Throughout the years, as a certified Java and Spring Framework professional, he's been involved in all project lifecycle phases, from analysis, design and implementation to testing, maintenance and deployment of complex, high-impact products. The fields he contributed to address real-world business needs, in industries like Telecom and Maritime Transportation.

Stats

Reputation: 2315
Pageviews: 148.2K
Articles: 32
Comments: 3
  • Articles
  • Comments

Articles

article thumbnail
Spring AI Advisors: Chat Memory, Token Tracking, and Message Logging
Part 3 of a step-by-step tutorial that decorates the implementation with Spring AI advisors to demonstrate how certain production concerns may be addressed.
June 5, 2026
· 2,460 Views · 3 Likes
article thumbnail
Securing the AI Host: Spring AI MCP Server Communication With API Keys
Part 2 of a step-by-step tutorial that integrates an AI assistant with two dedicated MCP servers and secures the communication.
June 3, 2026
· 2,321 Views · 2 Likes
article thumbnail
Building a Spring AI Assistant With MCP Servers: A Step-by-Step Tutorial
Part 1 of a step-by-step tutorial that integrates an AI assistant with two dedicated MCP servers and sets the foundation for going to production.
June 2, 2026
· 1,607 Views · 3 Likes
article thumbnail
Enhancing Secure MCP Client–Server Communication With the Chain of Responsibility Pattern
A clean and common, yet decoupled, flexible, and open for extension solution when interacting with multiple API key-secured MCP servers.
April 8, 2026
· 3,625 Views · 5 Likes
article thumbnail
Responding to HTTP Session Expiration on the Frontend via WebSockets
Presents a slightly different use of WebSockets — an action is taken at the front-end level when the HTTP session expires, and the back-end signals it.
February 17, 2026
· 1,745 Views · 4 Likes
article thumbnail
PostgreSQL Trigram Similarity vs. Pattern Matching: A Performance Comparison
Compare planning and execution times for similarity searches using trigram matching, case-insensitive regex and wildcard patterns, with and without GiST or GIN indexing.
January 23, 2026
· 3,507 Views · 7 Likes
article thumbnail
From Aspects to Advisors: Design Modular Cross-Cutting Features with Spring AI
Understand how Spring AI Advisors work and see how Aspect Oriented Programming concepts can be applied when interacting with LLMs.
January 15, 2026
· 2,023 Views · 5 Likes
article thumbnail
How to Secure a Spring AI MCP Server with an API Key via Spring Security
Discover how to protect your Spring AI MCP server with an API key, including clear instructions, sample code, and recommended security practices.
January 14, 2026
· 3,788 Views · 7 Likes
article thumbnail
How to Simply Manage Releases With Git
A straightforward recipe that helps understand the basic concepts of releasing projects with Git and maintaining the process.
November 13, 2025
· 2,344 Views · 9 Likes
article thumbnail
How to Map PostgreSQL JSON Data Types in Java Using asentinel-orm
Convert between custom Java types and database types using the Spring framework's ConversionService, particularly for JSON entity attributes.
November 12, 2025
· 2,769 Views · 5 Likes
article thumbnail
How to Build an MCP Server and Client With Spring AI MCP
Benefit from a cohesive system where individual components, such as LLM, MCP server, and MCP client, integrate seamlessly to deliver meaningful results.
October 23, 2025
· 3,724 Views · 6 Likes
article thumbnail
PostgreSQL Full-Text Search vs. Pattern Matching: A Performance Comparison
We'll analyze the performance of PostgreSQL full-text search (FTS) versus pattern and regex searching, highlighting trade-offs and execution efficiency.
October 17, 2025
· 2,884 Views · 8 Likes
article thumbnail
Pattern Searching and PostgreSQL Full-Text Search: Understanding the Mismatch
Learn why PostgreSQL full-text search (FTS) is great for semantic, language-aware searching, but not for raw pattern search.
October 7, 2025
· 3,888 Views · 11 Likes
article thumbnail
Spring REST API Client Flavors: From RestTemplate to RestClient
Client-server synchronous communication via REST, focusing on the client while presenting two distinct implementations with RestTemplate and RestClient.
September 22, 2025
· 3,456 Views · 5 Likes
article thumbnail
Enriching AI With Real-Time Insights via MCP
Introductory article about MCP, a universal adapter that allows AI assistants to access and interact with external systems while maintaining a consistent interface.
August 6, 2025
· 1,429 Views · 6 Likes
article thumbnail
How to Build an MCP Server With Java SDK
Develop an MCP Server from scratch using only the Java SDK, test it with the MCP Inspector and use it in conjunction with Claude Desktop.
August 4, 2025
· 4,627 Views · 12 Likes
article thumbnail
Turn SQL into Conversation: Natural Language Database Queries With MCP
Exemplifies how a dedicated MCP server that is able to access databases can enable LLMs to inspect them and offer their users useful pieces of information.
July 14, 2025
· 3,379 Views · 8 Likes
article thumbnail
Simpler Data Transfer Objects With Java Records
See how applications could elegantly organize and implement DTOs using Java records, especially in case of read-only operations.
May 28, 2025
· 3,409 Views · 5 Likes
article thumbnail
Debugging Deadlocks Using Java Synchronization Aids
This article explains how to isolate and test concurrent operations that led to deadlock and demonstrates how CountDownLatch and CyclicBarrier could help achieve this.
April 16, 2025
· 8,002 Views · 10 Likes
article thumbnail
Runtime-Defined Columns With asentinel-orm
Working with runtime entity attributes mapped to standard database columns that are handled using standard SQL queries, generated directly via the ORM.
December 5, 2024
· 1,948 Views · 6 Likes
article thumbnail
Handling Vectors in AI Context via PostgreSQL pgVector
An introduction to PostgreSQL pgVector extension and its supported metrics — L2 squared distance (Euclidian), dot product, cosine distance/similarity.
April 25, 2024
· 1,692 Views · 5 Likes
article thumbnail
Kafka Message Filtering: An Analysis
An analysis of how to implement a Kafka message filtering strategy, first as a general approach, then with the consumer needing to recover after deserialization errors.
March 19, 2024
· 4,387 Views · 6 Likes
article thumbnail
Generative AI With Spring Boot and Spring AI
This tutorial is a preview of how Spring AI can be integrated into a Spring Boot application and programmatically interact with Open AI LLMs.
February 9, 2024
· 8,282 Views · 6 Likes
article thumbnail
PostgreSQL Views With Runtime Parameters
Passing parameters to PostgreSQL views via temporary configuration parameters, as part of the current transaction.
November 21, 2023
· 12,634 Views · 6 Likes
article thumbnail
Acting Soon on Kafka Deserialization Errors
Event-driven architectures excel at performance, scalability, evolvability, and fault-tolerance providing a good level of abstraction and elasticity.
November 17, 2023
· 5,555 Views · 6 Likes
article thumbnail
Stream Summary Statistics
Execute multiple operations on a Java Stream at once to avoid repeated traversal. Note that the Stream becomes invalid after the terminal operation.
July 18, 2023
· 8,629 Views · 6 Likes
article thumbnail
Idempotent Liquibase Changesets
Here are two ways of writing idempotent Liquibase changesets: a best practice that allows having more robust and easy-to-maintain applications.
June 6, 2023
· 3,541 Views · 5 Likes
article thumbnail
Repeatable Database Updates via Liquibase
Tutorial on how to automatically re-run database scripts that are periodically updated without having to record them in the root migration file.
May 11, 2023
· 3,675 Views · 5 Likes
article thumbnail
IMAP OAuth 2.0 Authorization in Exchange Online
This article shows how a Java-based client application can connect to an e-mail server via IMAP protocol after obtaining an OAuth 2.0 access token.
November 23, 2022
· 10,081 Views · 4 Likes
article thumbnail
Bypassing Spring Interceptors via Decoration
This article documents a simple yet very useful way of bypassing some of the configured HandlerInterceptors depending on the request's mapping.
September 27, 2022
· 5,296 Views · 5 Likes

Comments

How to Secure a Spring AI MCP Server with an API Key via Spring Security

Jan 20, 2026 · Horatiu Dan

Hi,

Thank you - if you mean the source code, yes, but for some reason they are not visible. I resubmitted the Resources.

In the meantime, check the Resources section in the original source (on my blog), or even better here they are here.

Regards,

Horatiu

Java 11 to 21: A Visual Guide for Seamless Migration

Dec 07, 2023 · Otavio Santana

Thank you for the article.

In addition to the useful pieces of advice, I liked a lot the parallels you made throughout the article when providing arguments for the migration from Java 11 to Java 21.

I have a small observation though - in the first part, there are a few places where you say the migration is from 21 to 11. I think you meant the opposite and it would be nice to correct it for the future readers.

Setting Up and Running Apache Kafka on Windows OS

Feb 09, 2021 · Gopal Tiwari

Thank you for the quick and straight-forward tutorial on how to set these two guys up. Everything went smooth.

I used the latest of the two:

- zookeeper-3.6.2

- kafka_2.13-2.7.0


User has been successfully modified

Failed to modify user

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook