<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Spring Boot &#8211; Carsten Spräner</title>
	<atom:link href="https://www.spraener.de/tag/spring-boot/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.spraener.de</link>
	<description>Innovationen für Ihren Erfolg</description>
	<lastBuildDate>Wed, 13 Dec 2023 15:34:07 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://www.spraener.de/wp-content/uploads/2023/12/CS-Icon-gruen.png</url>
	<title>Spring Boot &#8211; Carsten Spräner</title>
	<link>https://www.spraener.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>04/2022 &#8211; 10/2023: Department of Justice</title>
		<link>https://www.spraener.de/2023/10/31/04-2022-10-2023-department-of-justice/</link>
		
		<dc:creator><![CDATA[Carsten Spräner]]></dc:creator>
		<pubDate>Tue, 31 Oct 2023 18:04:40 +0000</pubDate>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker-Compose]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[GIT]]></category>
		<category><![CDATA[GitLab]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[JUnit]]></category>
		<category><![CDATA[Lombok]]></category>
		<category><![CDATA[Lucene]]></category>
		<category><![CDATA[MapStruct]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[Mockito]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[RedMine]]></category>
		<category><![CDATA[Spring Boot]]></category>
		<category><![CDATA[Swagger]]></category>
		<category><![CDATA[µServices]]></category>
		<guid isPermaLink="false">https://www.spraener.de/?p=2632</guid>

					<description><![CDATA[<p>Implementing the backend of a lawsuit management software. The German Department of Justice initiated the project and aims to implement nationwide software to manage lawsuits. My task was to design, implement, and test the backend part of this system. Details Activities Design and developing µService endpoints with Spring Boot in consultation with the frontend team. [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2023/10/31/04-2022-10-2023-department-of-justice/">04/2022 &#8211; 10/2023: Department of Justice</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-uagb-container uagb-block-006649cb alignfull uagb-is-root-container"><div class="uagb-container-inner-blocks-wrap">
<h4 class="wp-block-heading">Implementing the backend of a lawsuit management software.</h4>



<p>The German Department of Justice initiated the project and aims to implement nationwide software to manage lawsuits. My task was to design, implement, and test the backend part of this system.</p>



<p><strong>Details</strong></p>



<ul>
<li>Developing with IntelliJ and Java-17</li>



<li>API-Specification with openAPI and implement the backend with Spring Boot</li>



<li>Running with Spring Boot</li>



<li>Organized with Jira and GitHub</li>



<li>Build with maven and Jenkins pipeline  <br></li>
</ul>



<p></p>



<p><strong>Activities</strong></p>



<p>Design and developing µService endpoints with Spring Boot in consultation with the frontend team. Test the endpoints with JUnit to get a test coverage above 90%. Describing backend integration tests with IntelliJ HTTP-component.</p>



<p><strong>IT-Technologies</strong></p>



<p>µServices, Spring Boot 2, Java 17, Groovy, Docker, Docker-Compose, Swagger, Lombok, MapStruct, JBoss, J2EE, MySQL/MariaDB, JUnit, Mockito, maven, GIT, Lucene 3.8 / 9.2.0, IntelliJ, Eclipse, Jira, Confluence, GitLab, Jenkins, RedMine</p>
</div></div>



<div class="wp-block-group alignfull has-ast-global-color-5-background-color has-background is-layout-flow wp-container-core-group-layout-1 wp-block-group-is-layout-flow">
<div class="wp-block-cover is-light" style="min-height:275px"><span aria-hidden="true" class="wp-block-cover__background has-ast-global-color-5-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<h3 class="wp-block-heading has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-8326121f7d0c4fd7bdb6cb133e8ddb75">Let&#8217;s Talk About Your Project</h3>



<p class="has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-d161da5374100bf47edf893e663ee225">Just send me a message!</p>



<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-layout-1 wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-ast-global-color-3-color has-ast-global-color-0-background-color has-text-color has-background wp-element-button" href="mailto:carsten@spraener.de" target="_blank" rel="noreferrer noopener">Contact Me</a></div>
</div>
</div></div>
</div>



<p></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2023/10/31/04-2022-10-2023-department-of-justice/">04/2022 &#8211; 10/2023: Department of Justice</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using KeyCloak on your local machine</title>
		<link>https://www.spraener.de/2023/07/25/using-keycloak-on-your-local-machine/</link>
		
		<dc:creator><![CDATA[Carsten Spräner]]></dc:creator>
		<pubDate>Tue, 25 Jul 2023 18:56:03 +0000</pubDate>
				<category><![CDATA[KeyCloak in Spring Boot]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KeyCloak]]></category>
		<category><![CDATA[Spring Boot]]></category>
		<guid isPermaLink="false">http://www.spraener.de/?p=555</guid>

					<description><![CDATA[<p>Every project with more than one user must have some authentication and authorization. These days, there is a quite handy and easy to user solution for user management that comes in a project called [KeyCloak](https://www.keycloak.org/ "KeyCloak"). KeyCloak provides all necessary functionality like user registration, sign-in, and sign-in via Google, Facebook, and whatnot, all with support for modern standards like OICD. </p>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2023/07/25/using-keycloak-on-your-local-machine/">Using KeyCloak on your local machine</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="taxonomy-post_tag has-link-color has-text-color has-ast-global-color-3-color has-background has-ast-global-color-4-background-color wp-block-post-terms wp-elements-0246d7792e0d2afcd98ec102cfb790c1"><a href="https://www.spraener.de/tag/java/" rel="tag">Java</a><span class="wp-block-post-terms__separator">, </span><a href="https://www.spraener.de/tag/keycloak/" rel="tag">KeyCloak</a><span class="wp-block-post-terms__separator">, </span><a href="https://www.spraener.de/tag/spring-boot/" rel="tag">Spring Boot</a></div>


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>


<p>Every project with more than one user must have some authentication and authorization. These days, a quite handy and easy-to-use solution for user management comes in a project called <a title="KeyCloak" href="https://www.keycloak.org/" rel="nofollow noopener" target="_blank">KeyCloak</a>. KeyCloak provides all necessary functionality like user registration, sign-in, and sign-in via Google, Facebook, and whatnot, all supporting modern standards like OICD.</p>
<p>KeyCloak is sponsored by Red Hat and is very well maintained. Regular updates and support for new technologies have been seen in recent years. KeyCloak could be a good choice for every company if it trusts open-source projects.</p>
<p>In this post, I describe how to install KeyCloak on a local machine for development purposes. The Version described here is Version 22.0.1.</p>
<h3>Downloading and starting KeyCloak</h3>
<p>KeyCloak comes in a zip or tar file and can be downloaded from here: <a href="https://www.keycloak.org/downloads" rel="nofollow noopener" target="_blank">https://www.keycloak.org/downloads</a></p>
<p>If you download the zip file, you can extract it wherever you want and start KeyCloak by:</p>
<pre><code class="language-bash">&gt; cd KeyCloak
&gt; bin/bc.sh start-dev</code></pre>
<p><strong>Attention</strong> I tried it with the most recent version 22.0.1 and got an error. KeyCloak 21.1.1 works fine.</p>
<p>After start-up KeyCloak is reachable under the URL</p>
<p><a href="http://localhost:8080" rel="nofollow noopener" target="_blank">http://localhost:8080</a></p>
<p>When you first visit this page, KeyCloak will ask you to set an administrator username and password:</p>
<p><img decoding="async" src="http://www.spraener.de/wp-content/uploads/2023/07/image-1690310899554.png" alt="file" /></p>
<p>Enter the administrator&#8217;s username and password, and you will see the new Welcome screen:</p>
<p><img decoding="async" src="http://www.spraener.de/wp-content/uploads/2023/07/image-1690310988954.png" alt="file" /></p>
<p>Now, you can navigate to the administrator console via the link. Enter<br />the credentials as specified above, and you will see the main page of KeyCloak:</p>
<p><img decoding="async" src="http://www.spraener.de/wp-content/uploads/2023/07/image-1690311083293.png" alt="file" /></p>
<p>YEP! That&#8217;s it. You set up a KeyCloak instance for your personal development.</p>
<h3>What&#8217;s next</h3>
<p>In the next posts, I will set up a realm for development. A Real is an area where users, roles, groups, and clients are managed.</p>
<p>After that, I will bring KeyCloak into a cloud environment with docker-compose, NgInx, and MariaDB.</p>
<h3>Some Notes</h3>
<ul>
<li>Do not use this setup method for production. For production, you have to do a lot more.</li>
<li>I tried the new Version 22.0.1 of KeyCloak and got an error during the start procedure:
<pre><code class="language-bash">ERROR: Failed to run 'build' command.
ERROR: Name is too long
For more details run the same command passing the '--verbose' option. Also you can use '--help' to see the details about the usage of the particular command.</code></pre>
</li>
</ul>
<p>This error is still under investigation&#8230;</p>


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="taxonomy-post_tag wp-block-post-terms"><a href="https://www.spraener.de/tag/java/" rel="tag">Java</a><span class="wp-block-post-terms__separator">, </span><a href="https://www.spraener.de/tag/keycloak/" rel="tag">KeyCloak</a><span class="wp-block-post-terms__separator">, </span><a href="https://www.spraener.de/tag/spring-boot/" rel="tag">Spring Boot</a></div>


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-group alignfull has-ast-global-color-5-background-color has-background is-layout-flow wp-container-core-group-layout-2 wp-block-group-is-layout-flow">
<div class="wp-block-cover is-light" style="min-height:275px"><span aria-hidden="true" class="wp-block-cover__background has-ast-global-color-5-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<h3 class="wp-block-heading has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-8326121f7d0c4fd7bdb6cb133e8ddb75">Let&#8217;s Talk About Your Project</h3>



<p class="has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-d161da5374100bf47edf893e663ee225">Just send me a message!</p>



<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-layout-2 wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-ast-global-color-3-color has-ast-global-color-0-background-color has-text-color has-background wp-element-button" href="mailto:carsten@spraener.de" target="_blank" rel="noreferrer noopener">Contact Me</a></div>
</div>
</div></div>
</div>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2023/07/25/using-keycloak-on-your-local-machine/">Using KeyCloak on your local machine</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>06/2023: IT Service Industry</title>
		<link>https://www.spraener.de/2023/06/30/keycloak_saml-provider/</link>
		
		<dc:creator><![CDATA[Carsten Spräner]]></dc:creator>
		<pubDate>Fri, 30 Jun 2023 15:23:00 +0000</pubDate>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker-Compose]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KeyCloak]]></category>
		<category><![CDATA[MagicLink]]></category>
		<category><![CDATA[OIDC]]></category>
		<category><![CDATA[SAML]]></category>
		<category><![CDATA[Spring Boot]]></category>
		<guid isPermaLink="false">https://www.spraener.de/?p=2808</guid>

					<description><![CDATA[<p>KeyCloak as SAML-Provider for a Spring-Boot Application. In preparation for a workshop, a Spring-Boot application was created with KeyCloak as the identity provider. A user can log into the application via SAML or a Magic Link. The Magic Link is sent to the user by mail. Details Activities Implementation of the entire prototype. Creation of [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2023/06/30/keycloak_saml-provider/">06/2023: IT Service Industry</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-uagb-container uagb-block-886c2e4e alignfull uagb-is-root-container"><div class="uagb-container-inner-blocks-wrap">
<h4 class="wp-block-heading">KeyCloak as SAML-Provider for a Spring-Boot Application.</h4>



<p>In preparation for a workshop, a Spring-Boot application was created with KeyCloak as the identity provider. A user can log into the application via SAML or a Magic Link. The Magic Link is sent to the user by mail.</p>



<p><strong>Details</strong></p>



<ul>
<li>Implementing a Spring-Boot application with public and protected areas and using the SAML protocol</li>



<li>Implementation of a KeyCloak plugin for Magic Link creation</li>



<li>Connection of the application to a KeyCloak instance</li>



<li>Configuration of KeyCloak as SAML provider and creation of a realm for the prototype</li>



<li>Creation of Magic Links for direct login into the protected area</li>



<li>Creation of multi-layer Dockerfiles for easy operation on any Docker-enabled system</li>



<li>Deployment of the whole system via docker-compose, including database, KeyCloak, Spring boot application</li>
</ul>



<p></p>



<p><strong>Activities</strong></p>



<p>Implementation of the entire prototype. Creation of Dockerfiles to build and run the systems. Deployment of the entire system via docker-compose. Availability via <a href="https://github.com/carstenSpraener/keycloak-examples" data-type="link" data-id="https://github.com/carstenSpraener/keycloak-examples" rel="nofollow noopener" target="_blank">G</a><a href="https://github.com/carstenSpraener/keycloak-examples" target="_blank" data-type="link" data-id="https://github.com/carstenSpraener/keycloak-examples" rel="noreferrer noopener nofollow">itHub</a>.</p>



<p><strong>IT-Technologies</strong></p>



<p>Java 17, Spring-Boot 3, KeyCloak, Docker, docker-compose, SAML, OIDC, MagicLink</p>
</div></div>



<div class="wp-block-group alignfull has-ast-global-color-5-background-color has-background is-layout-flow wp-container-core-group-layout-3 wp-block-group-is-layout-flow">
<div class="wp-block-cover is-light" style="min-height:275px"><span aria-hidden="true" class="wp-block-cover__background has-ast-global-color-5-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<h3 class="wp-block-heading has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-8326121f7d0c4fd7bdb6cb133e8ddb75">Let&#8217;s Talk About Your Project</h3>



<p class="has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-d161da5374100bf47edf893e663ee225">Just send me a message!</p>



<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-layout-3 wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-ast-global-color-3-color has-ast-global-color-0-background-color has-text-color has-background wp-element-button" href="mailto:carsten@spraener.de" target="_blank" rel="noreferrer noopener">Contact Me</a></div>
</div>
</div></div>
</div>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2023/06/30/keycloak_saml-provider/">06/2023: IT Service Industry</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>04/2014 &#8211; 12/2016: Insurance</title>
		<link>https://www.spraener.de/2016/12/31/combined-calculator/</link>
		
		<dc:creator><![CDATA[Carsten Spräner]]></dc:creator>
		<pubDate>Sat, 31 Dec 2016 12:58:00 +0000</pubDate>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[Parallel Computing]]></category>
		<category><![CDATA[Spring Boot]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[Webservices]]></category>
		<guid isPermaLink="false">http://www.spraener.de/?p=341</guid>

					<description><![CDATA[<p>Combined calculator for life insurance. The customer wanted a calculator for several products in the life insurance domain. The calculator must integrate several systems and present them as one new product. Thus, all contracts can be sold as one product. Details Activities Responsible for the architecture, leading the development team, and optimization of time-critical processes. [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2016/12/31/combined-calculator/">04/2014 &#8211; 12/2016: Insurance</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-uagb-container uagb-block-1d2692b6 alignfull uagb-is-root-container"><div class="uagb-container-inner-blocks-wrap">
<h4 class="wp-block-heading">Combined calculator for life insurance.</h4>



<p>The customer wanted a calculator for several products in the life insurance domain. The calculator must integrate several systems and present them as one new product. Thus, all contracts can be sold as one product.</p>



<p><strong>Details</strong></p>



<ul>
<li>Designing a flexible architecture</li>



<li>Integrating external providers via web services</li>



<li>Integrating a product model (VP/MS)</li>



<li>Database persistence</li>



<li>Introducing new developers to maintain the system</li>
</ul>



<p><strong>Activities</strong></p>



<p>Responsible for the architecture, leading the development team, and optimization of time-critical processes.</p>



<p><strong>IT-Technologies</strong></p>



<p>Java 8, Spring-Boot 3, JPA 2.0, UML2, Webservices (JAXB), J2EE 6, Parallel Computing</p>
</div></div>



<div class="wp-block-group alignfull has-ast-global-color-5-background-color has-background is-layout-flow wp-container-core-group-layout-4 wp-block-group-is-layout-flow">
<div class="wp-block-cover is-light" style="min-height:275px"><span aria-hidden="true" class="wp-block-cover__background has-ast-global-color-5-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<h3 class="wp-block-heading has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-8326121f7d0c4fd7bdb6cb133e8ddb75">Let&#8217;s Talk About Your Project</h3>



<p class="has-text-align-center has-ast-global-color-2-color has-text-color has-link-color wp-elements-d161da5374100bf47edf893e663ee225">Just send me a message!</p>



<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-layout-4 wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-ast-global-color-3-color has-ast-global-color-0-background-color has-text-color has-background wp-element-button" href="mailto:carsten@spraener.de" target="_blank" rel="noreferrer noopener">Contact Me</a></div>
</div>
</div></div>
</div>
<p>Der Beitrag <a rel="nofollow" href="https://www.spraener.de/2016/12/31/combined-calculator/">04/2014 &#8211; 12/2016: Insurance</a> erschien zuerst auf <a rel="nofollow" href="https://www.spraener.de">Carsten Spräner</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
