<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Advanced Security Mechanisms in the Spring Framework: JWT, OAuth, LDAP and Keycloak</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Nikola</forename><surname>Dimitrijević</surname></persName>
							<email>nikola.dimitrijevic@metropolitan.ac.rs</email>
							<affiliation key="aff0">
								<orgName type="department">Faculty of Information Technology</orgName>
								<orgName type="institution">Belgrade Metropolitan University</orgName>
								<address>
									<addrLine>Tadeuša Košćuška 63</addrLine>
									<postCode>11000</postCode>
									<settlement>Belgrade</settlement>
									<country key="RS">Serbia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Nemanja</forename><surname>Zdravković</surname></persName>
							<email>nemanja.zdravkovic@metropolitan.ac.rs</email>
							<affiliation key="aff0">
								<orgName type="department">Faculty of Information Technology</orgName>
								<orgName type="institution">Belgrade Metropolitan University</orgName>
								<address>
									<addrLine>Tadeuša Košćuška 63</addrLine>
									<postCode>11000</postCode>
									<settlement>Belgrade</settlement>
									<country key="RS">Serbia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Milena</forename><surname>Bogdanović</surname></persName>
							<email>milenabogdanovic@metropolitan.ac.rs</email>
							<affiliation key="aff0">
								<orgName type="department">Faculty of Information Technology</orgName>
								<orgName type="institution">Belgrade Metropolitan University</orgName>
								<address>
									<addrLine>Tadeuša Košćuška 63</addrLine>
									<postCode>11000</postCode>
									<settlement>Belgrade</settlement>
									<country key="RS">Serbia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Aleksandar</forename><surname>Mesterovic</surname></persName>
							<email>aleksandar.mesterovic@students.mq.edu.au</email>
							<affiliation key="aff1">
								<orgName type="department" key="dep1">Department of Security Studies and Criminology</orgName>
								<orgName type="department" key="dep2">Faculty of Art</orgName>
								<orgName type="institution">Macquarie University</orgName>
								<address>
									<settlement>Sydney</settlement>
									<country key="AU">Australia</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Advanced Security Mechanisms in the Spring Framework: JWT, OAuth, LDAP and Keycloak</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">AFBAF9FB0F4EB4562227C3921C018B08</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T17:32+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Spring framework, Security awareness, JWT, OAuth, LDAP, Keycloak (A. Mesterovic) 0000-0002-6595-9277 (N. Dimitrijević)</term>
					<term>0000-0002-0707-5174 (N. Zdravković)</term>
					<term>0000-0003-0316-4484 (M. Bogdanović)</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The security of software applications is a critical concern in modern software development, especially with the prevalence of distributed systems and microservices. The Spring Framework stands out as a premier Java ecosystem development platform that offers an extensive range of options for implementing robust security mechanisms. This paper will shift its focus to explore advanced approaches to securing enterprise environments using the Spring Framework; specifically discussing topics such as JSON Web Token (JWT), OAuth 2.0, Lightweight Directory Access Protocol (LDAP) and Keycloak-based solutions.</p><p>The use of JWT is pivotal for the secure communication of information between disparate parties, particularly in the context of stateless authentication inherent to micro-service architectures. OAuth 2.0 serves as a standard for authorization that permits users access to shared resources while safeguarding sensitive user credentials from being exposed unnecessarily. LDAP finds practical applicability by facilitating centralized management and governance over identities and privileged accesses, chiefly advantageous when dealing with complex organizational structures at scale. As an open-source platform solution specifically tailored towards identity recognition and managed authorizations, Keycloak offers integration opportunities within Spring applications ecosystem where it introduces support services catering to commonly accepted protocols such as OpenID Connect or SAML; providing sound solutions essential in ensuring well-regulated confidential interactions akin during situations demanding trusted validations occasioned by both internal needs or external supply chain partners alike.</p><p>In this, paper, we investigate the manner in which advanced technologies can be suitably employed within the Spring Framework for creating secure and scalable applications. The analysis delves into each of these mechanisms, outlining their advantages and challenges along with integration considerations when complex business scenarios arise. Ultimately, this exploration is intended to enhance comprehension surrounding progressive security measures applicable to the Spring environment thereby equipping developers with improved capacity for constructing more resilient application solutions.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>The Spring Framework has become a fundamental component in the development of contemporary Java-based applications. This is particularly attributed to its extensive infrastructure support for application building <ref type="bibr" target="#b0">[1]</ref>. A core feature within this framework is Spring Security; an influential and personalized authentication and access control system that plays a critical role in safeguarding applications against prevalent security threats.</p><p>The Spring Framework, which was first introduced in 2003, brought about a significant transformation to Java development by introducing an Inversion of Control (IoC) container that is lightweight and simplified the management of application components. This groundbreak-ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) ing concept has evolved over time with the inclusion of various modules designed to cater to different aspects of enterprise application development. Notably among these arrangements is the Spring Security module that plays an important role in securing applications through its provision of comprehensive security services tailored for Java EE-based enterprise software applications <ref type="bibr" target="#b1">[2]</ref>.</p><p>According to <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b3">4]</ref> 44.1% of respondents use the free AdoptOpenJDK distribution in production. However, Oracle still has a significant presence, with 28% for their OpenJDK build and 23% for the commercial Oracle JDK.</p><p>The JSON Web Token (JWT) represents a widely adopted and established medium of securely exchanging information as JSON objects among entities. These tokens stand out for their compactness, compatibility with URLs, digital signature support resulting in enhanced security features, therefore constituting an ideal option in stateless authentication contexts within contemporary web applications <ref type="bibr" target="#b4">[5]</ref>. When merged into Spring Security System Architecture , JWTs provide reliable and uninterrupted mechanisms compatible with the overall design of secure non-session-based functionalities instructured developments derived from spring programming methodology.  The OAuth 2.0 framework serves as a means of authorization that allows applications to acquire restricted access to user accounts on an HTTP service. This process involves the delegation of user authentication tasks to the hosting service, as described by Hardt in 2012. In relation to Spring Security, OAuth 2.0 presents a formidable technique for safeguarding RESTful services and APIs through outsourcing user authentication functions towards an external authorization server.</p><p>The Lightweight Directory Access Protocol (LDAP) is a commonly utilized protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network. Within Spring Security, LDAP assumes a pivotal role in managing user identities and access control -particularly within extensive enterprise environments as flagged by Rouse's research findings in 2005.</p><p>Keycloak is an open-source solution for Identity and Access Management that caters to contemporary applications and services. It harbors a vast array of features including Single-Sign On (SSO), identity brokering, as well as social login capabilities. Keycloak effectively integrates with Spring Security platforms allowing developers seamless access to diverse authentication mechanisms alongside authorization protocols which enhance the security parameters over their application environment <ref type="bibr" target="#b5">[6]</ref>.</p><p>The incorporation of sophisticated security mechanisms, namely JWT, OAuth, LDAP and Keycloak into the Spring Framework via Spring Security epitomizes a noteworthy progression towards creating secure Java applications. This amalgamation not only streamlines the implementation process for intricate security requisites but also guarantees that these applications are resilient against an extensive gamut of adversarial incursions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">JWT and Its Implementation in Spring Framework</head><p>The use of JWT has garnered considerable significance in contemporary web security practices as it provides a concise and autonomous approach for transferring information between participants via a JSON object that facilitates high-level confidentiality. JWTs are designed to enable signing mechanisms, which can be achieved by employing either secret key cryptography utilizing the HMAC algorithm or public-private encryption with RSA or ECDSA algorithms, thereby assuring data integrity during transmission <ref type="bibr" target="#b6">[7]</ref>. With such authentication protocols in place that do not rely on session state storage, JWT serves aptly suited scenarios like RESTful APIs.</p><p>A JWT generally comprises of three components: a header, a payload and a signature. The header typically encompasses two parts that comprise the kind of token -which is JWT -and the algorithm for signing being utilized. The payload entails claims regarding an entity (usually the user) alongside supplementary data. Finally, to guarantee that no changes have been made after issuance, we use signatures in order to ensure authenticity over time lapse periods.</p><p>Spring Security offers comprehensive backing to JWT. The incorporation of JWT within Spring Security facilitates developers with an opportunity to address user authentication and authorization in a non-persistent approach, thereby proving significantly advantageous for RESTful applications. With the help of the Spring Security framework, validation procedures for JWTs are made accessible; ensuring that they possess proper formation whilst verifying their signature as well as claims' validity <ref type="bibr" target="#b7">[8]</ref>.</p><p>When incorporating JWT into a Spring application, developers commonly rely on established libraries such as spring-security-oauth2 or spring-security-jwt. These libraries contain the  essential resources required to efficiently generate, analyze and authenticate JWTs. The implementation process entails configuring a JwtTokenStore and JwtAccessTokenConverter while providing an optional TokenEnhancer for supplementing additional information within the JWT. Furthermore, it is imperative that developers configure an authentication manager in addition to outlining security restrictions placed upon endpoints utilized by said application instance.</p><p>The JWT protocol is especially advantageous in situations where it is essential to establish the authenticity of a user and their requisite authorizations for accessing designated resources. It serves as an added advantage within microservices architecture, wherein secure inter-service communication becomes imperative. To optimally utilize JWT with Spring framework, established guidelines comprise deployment of HTTPS to safeguard token interception threats, setting realistic expiration timeframes for tokens and judicious management pertaining information contained in payload sections so that sensitive data may not get exposed inadvertently.</p><p>The incorporation of JSON into Spring Security provides a dependable and efficient approach to managing authentication and authorization in an immutable fashion. Its versatility combined with its user-friendliness render it an optimal alternative for safeguarding applications based on the Spring framework, specifically those structured around micro-services as well as RESTful services.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">OAuth 2.0</head><p>OAuth 2.0 is an authorization framework that grants third-party applications limited access to an HTTP service, whether through representation of a resource owner or autonomous acquisition of access privileges. Its distinction from authentication renders it indispensable in situations wherein user data must be requested from other services without compromising their respective credentials <ref type="bibr" target="#b8">[9]</ref>. OAuth 2.0 introduces several roles:</p><p>• Resource Owner: The user who authorizes an application to access their account.   • Token Management: Implement token store and token services to manage token generation, expiration, and refresh. • Security Configuration: Define security constraints for different endpoints, specifying which are protected and which are publicly accessible.</p><p>Spring Security OAuth 2.0 also supports advanced features like:</p><p>• Custom Token Enhancers: To add additional information to the OAuth tokens. • Approval Handlers: To manage user approvals for token grants. • Redirection and User Information Endpoints: To handle user redirection after authentication and to provide user information to clients.</p><p>Key best practices include:</p><p>• Securing Client Secrets: Store client secrets securely and never expose them in client-side code. • Validating Redirect URIs: Ensure that all redirect URIs are pre-registered and validated to prevent unauthorized redirection. • Token Security: Use HTTPS for all communications involving tokens and credentials. Implement token revocation and rotation strategies.</p><p>The utilization of OAuth 2.0 within Spring Security presents a sturdy architecture for establishing secure authorization protocols in applications. Through the strategic employment of Spring's configuration and customization capabilities, developers possess the ability to tailor OAuth 2.0 implementation to address diverse application requirements while ensuring optimal functionality and security measures are upheld.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">LDAP</head><p>The Lightweight Directory Access Protocol (LDAP) is a prominently utilized protocol designed for accessing and sustaining the functionality of dispersed directory information services on an Internet Protocol (IP) network. LDAP serves various purposes, including but not limited to email lookup, authentication processes as well as organization of company data. It has emerged particularly advantageous in facilitating user information management alongside enabling seamless authentication and authorization capabilities within vast enterprise environments <ref type="bibr" target="#b9">[10]</ref>.</p><p>In the sphere of Spring Security, LDAP functions as a fundamental source for both user data and authentication. With its extensive support for LDAP, Spring Security effectively facilitates seamless integration with alreadyexisting LDAP servers. Consequently, this synergy confers upon applications the ability to validate users whilst retrieving pertinent user role information that has been preserved in an independent directory within an LDAP database.</p><p>Implementing LDAP authentication in a Spring application typically involves several steps: The incorporation of LDAP into Spring Security presents a highly effective approach to managing user authentication and authorization across enterprise applications. Through the advantageous utilization of Spring's inherent support for LDAP, software developers can establish seamless connectivity with LDAP directories while concurrently fortifying security and scalability within their respective application frameworks.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Keycloak</head><p>Keycloak is a state-of-the-art solution for Identity and Access Management, developed by Red Hat as an opensource software. Its primary objective lies in streamlining the integration of standard protocols such as OpenID Connect and SAML 2.0 into authentication processes while facilitating authorization procedures. In addition to centralized management console capabilities concerning user identities, Keycloak enables features that ensure SSO, two-factor authentication, and social login functionalities are supported efficiently. These advanced security provisions make it particularly suited for safeguarding modern applications' integrity within diverse service environments where tailored identity management solutions are highly valued <ref type="bibr" target="#b10">[11]</ref>.</p><p>In the context of Spring Security, Keycloak presents itself as a viable choice for an authentication and authorization server. As such, it affords Spring applications the option to delegate their user authentication and authorization protocols directly to Keycloak-a dynamic that subsequently streamlines security management efforts. This integration furthermore empowers said applications with access to advanced features exclusive to Keycloak; examples include SSO, token-based authentication measures, in addition to user federation capabilities.</p><p>Implementing Keycloak in a Spring application typically involves several steps: Keycloak's integration with Spring allows for advanced customizations, such as:</p><p>• Custom User Attributes: Adding and managing custom user attributes in Keycloak. • Identity Brokering: Configuring Keycloak to act as an identity broker between different identity providers. • Theme Customization: Customizing the look and feel of login pages and emails.</p><p>When integrating Keycloak with Spring, it's important to follow best practices:</p><p>• Secure Communication: Ensure that all communications between the Spring application and Keycloak server are secured using HTTPS. • Client Secrets: Securely manage and store client secrets used for communication with Keycloak. • Token Validation: Implement proper token validation in the Spring application to prevent unauthorized access.</p><p>Keycloak's integration into Spring Security offers a powerful and flexible solution for managing authentication and authorization in applications. By leveraging Keycloak, developers can enhance the security of their Spring applications, taking advantage of features like SSO, token-based authentication, and user federation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">Literature overview</head><p>JWTs have now become a critical component for ensuring web security in contemporary times. In the context of this, a scholarly research titled "Enhancing JWT Authentication and Authorization in Web Applications Based on User Behavior History" published in 2022 underlines the vital significance of incorporating user behavior history while utilizing JWT to optimize overall application security. It is noteworthy that Spring Security endorses such an approach via providing robust support for implementing stateless authentication and authorization features using JWT <ref type="bibr" target="#b11">[12]</ref>.</p><p>Furthermore, it is highlighted in a study in 2017 that the significance of JWTs extends across various sectors. The research exhibits the versatility of JWT usage in multiple contexts such as smart home environments, thereby accentuating its efficacy specifically with regard to Spring-based applications <ref type="bibr" target="#b12">[13]</ref>.</p><p>The utilization of OAuth 2.0 in Spring is indispensable for ensuring sound authorization measures <ref type="bibr" target="#b13">[14]</ref>. The paper scrutinizes the intricacies and methods pertinent to microservices architecture encompassing OAuth 2.0 as a core part thereof. This approach coincides with the aid provided by Spring Security's advanced support for OAuth 2.0 protocols aimed at streamlining diverse grant types within applications built on this platform.</p><p>The well-established function of LDAP in the management of user authentication and authorization can be further enhanced through its integration with Spring Security by taking into account the principles expounded upon in <ref type="bibr" target="#b14">[15]</ref>. The paper's elucidation on context-aware authorization within IoT and blockchain domains is highly informative for LDAP implementation within complex enterprise environments operating under Spring.</p><p>The integration of Keycloak with Spring Security provides a potent means to manage the authentication and authorization process. A recent study <ref type="bibr" target="#b15">[16]</ref> serves as an illustrative example of how combining Keycloak and Spring Security can effectively secure APIs within a microservice-based structure. This study highlights the efficacy of utilizing Keycloak alongside Spring Security for ensuring resolute application security mechanisms.</p><p>Finally, the research paper entitled "Exploring the Utilization of JWT in MQTT" published on arXiv in 2019 delves into the versatile application of JWT within MQTT, a lightweight communication protocol. This study emphasizes that JWT can be extended to various protocols and applications, including those developed with Spring Framework <ref type="bibr" target="#b4">[5]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">Conclusion</head><p>The Spring Framework encompasses the integration of JWT, OAuth 2.0, LDAP and Keycloak for a multi-layered approach to security, with each component possessing its own advantages and drawbacks. In particular, JWT boasts stateless functionality as well as scalability suitability which renders it fitting for contemporary web applications; however meticulous monitoring of token security is critical in order to prevent any potential vulnerability or theft risk. OAuth 2.0 serves as an extensive yet adaptable authorization framework suitable across diverse application types such IoT implementations; nevertheless complexity may present challenges during implementation while strict adherence to best practice guidelines must be maintained continuously throughout operation.</p><p>LDAP excels at managing user identities within vast operational environments through centralized authentication mechanisms but setting up can pose significant logistical hurdles especially when confronted by rapidly changing data sets needing constant adjustments compared to alternate solutions available. Finally integrating Keycloak into microservice architectures enables simpler handling of comprehensive identity access management features significantly simplifying administration needs albeit simultaneously placing additional demands on server configuration requirements possibly introducing performance reduction issues without careful optimization attention being given determining effective trade-offs relative required specific infrastructure capability constraints.</p><p>The cumulative package delivered via incorporation all these methods launched efficiently using Spring affords robust overall system protection ensuring mitigation maximization against detrimental vulnerabilities arisen from optimal deployment following exhaustive comprehension fundamental principles defining reliable secure ecosystem operations governance broadly applicable many industry type verticals benefiting handsomely therefrom upon successful implementation completion achieving strategic business objectives intending businesses reaping profitable outcomes thereof gaining competitive advantage over peers not leveraging innovative approaches towards future-proofing their information technology systems accordingly</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: JDKs in production.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: JSON Web Token Structure -Encoded.</figDesc><graphic coords="3,89.29,84.19,203.36,220.05" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: JSON Web Token Structure -Decoded.</figDesc><graphic coords="3,89.29,339.32,203.36,217.04" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: OAuth five-way handshake.</figDesc></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgment</head><p>This paper was supported in part by the Blockchain Technology Laboratory at Belgrade Metropolitan University, Belgrade, Serbia and in part by the Ministry of Education, Science and Technological Development, Republic of Serbia ref. no. 451-03-47/2023-01/200029.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The spring framework-reference documentation</title>
		<author>
			<persName><forename type="first">R</forename><surname>Johnson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hoeller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Donald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Sampaleanu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Harrop</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Risberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Arendsen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Davison</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kopylenko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Pollack</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">interface</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="page">27</biblScope>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><surname>Walls</surname></persName>
		</author>
		<title level="m">Spring in action</title>
				<imprint>
			<publisher>Manning Publications</publisher>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
	<note>4th edition</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><surname>Snyk</surname></persName>
		</author>
		<ptr target="https://snyk.io/reports/jvm-ecosystem-report-2021/" />
		<title level="m">JVM Ecosystem Report 2021</title>
				<imprint>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A comparative assessment of jvm frameworks to develop microservices</title>
		<author>
			<persName><forename type="first">Ł</forename><surname>Wyciślik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ł</forename><surname>Latusik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">M</forename><surname>Kamińska</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Applied Sciences</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page">1343</biblScope>
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">K</forename><surname>Shingala</surname></persName>
		</author>
		<idno type="arXiv">arXiv:1903.02895</idno>
		<title level="m">JSON web token (JWT) based client authentication in message queuing telemetry transport (MQTT)</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
	<note type="report_type">arXiv preprint</note>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Thorgersen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">I</forename><surname>Silva</surname></persName>
		</author>
		<title level="m">Keycloak-identity and access management for modern applications: harness the power of Keycloak, OpenID Connect, and OAuth 2.0 protocols to secure applications</title>
				<imprint>
			<publisher>Packt Publishing Ltd</publisher>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Jones</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bradley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Sakimura</surname></persName>
		</author>
		<title level="m">JSON Web Token (JWT)</title>
				<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
	<note>RFC 7519</note>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Knutson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Winch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Mularien</surname></persName>
		</author>
		<title level="m">Spring Security: Secure your web applications, RESTful services, and microservice architectures</title>
				<imprint>
			<publisher>Packt Publishing Ltd</publisher>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Hardt</surname></persName>
		</author>
		<title level="m">The OAuth 2.0 authorization framework</title>
				<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
	<note>RFC 6749</note>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Rouse</surname></persName>
		</author>
		<title level="m">Enterprise Mobile Computing news and information</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
	<note>Ldap (lightweight directory access protocol)</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><surname>Hat</surname></persName>
		</author>
		<title level="m">Keycloak-open source identity and access management</title>
				<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Enhancing jwt authentication and authorization in web applications based on user behavior history</title>
		<author>
			<persName><forename type="first">A</forename><surname>Bucko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Vishi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Krasniqi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Rexha</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computers</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">A study on a jwt-based user authentication and api assessment scheme using imei in a smart home environment</title>
		<author>
			<persName><forename type="first">N</forename><surname>Hong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M.-S</forename><surname>Jun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Sustainability</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Authentication and authorization in microservices architecture: A systematic literature review</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>De Almeida</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">D</forename><surname>Canedo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Applied Sciences</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Blockchain-based context-aware authorization management as a service in iot</title>
		<author>
			<persName><forename type="first">T</forename><surname>Sylla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Mendiboure</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Chalouf</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Krief</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Sensors</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="page">7656</biblScope>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Applying spring security framework with keycloak-based oauth2 to protect microservice architecture apis: A case study</title>
		<author>
			<persName><forename type="first">A</forename><surname>Chatterjee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Prinz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Sensors</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="page">1703</biblScope>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
