<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.chongtin.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.chongtin.com/feed.php">
        <title>Tutorial Site springboot</title>
        <description></description>
        <link>https://wiki.chongtin.com/</link>
        <image rdf:resource="https://wiki.chongtin.com/ttps://wiki.chongtin.com/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-04-09T00:01:29+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/adding_customized_pre-authentication?do=revisions&amp;rev=1539137784"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/adding_customized_properties_in_application.properties_file?do=revisions&amp;rev=1621928518"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/basic_websocket?do=revisions&amp;rev=1633579569"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/calling_stored_procedure_with_output_parameters?do=revisions&amp;rev=1609224675"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/commandlinerunner?do=revisions&amp;rev=1591845267"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/deploy_springboot_2.3.1_on_weblogic_12c?do=revisions&amp;rev=1604287492"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/development_and_production_application.properties?do=revisions&amp;rev=1609816627"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/display_detail_log_in_debug_console?do=revisions&amp;rev=1590049519"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/handling_the_trailing_slash_in_url?do=revisions&amp;rev=1590994269"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/having_spring_to_create_the_database_schema?do=revisions&amp;rev=1591002186"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/hibinate_5_ignore_table_column_name_in_entity?do=revisions&amp;rev=1603413827"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/mapping_url_to_local_file_system?do=revisions&amp;rev=1590996726"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/multiple_datasources?do=revisions&amp;rev=1612766780"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/run_spring_not_as_server?do=revisions&amp;rev=1607582925"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/scheduling_task?do=revisions&amp;rev=1539653636"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_basic_jpa?do=revisions&amp;rev=1590053132"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_form_input?do=revisions&amp;rev=1590463506"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_form_input_from_httpservletrequest?do=revisions&amp;rev=1590467457"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_jpa_dto_mapping?do=revisions&amp;rev=1610423744"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_restcontroller?do=revisions&amp;rev=1590650239"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_restcontroller_better_error_handling?do=revisions&amp;rev=1590650554"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_simple_ajax_authentication?do=revisions&amp;rev=1604452467"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_simple_jwt_authentication?do=revisions&amp;rev=1592273767"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_simple_username-password_authentication_with_h2?do=revisions&amp;rev=1591691438"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_using_datasource_or_jdbctemplate?do=revisions&amp;rev=1590978751"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/spring_web_security?do=revisions&amp;rev=1590373294"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/start_from_spring_initializr?do=revisions&amp;rev=1590029913"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/table_naming_being_ignored?do=revisions&amp;rev=1607679989"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/using_h2_as_datasource_for_testing?do=revisions&amp;rev=1607678425"/>
                <rdf:li rdf:resource="https://wiki.chongtin.com/springboot/what_is_json_web_token_jwt?do=revisions&amp;rev=1604539726"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.chongtin.com/ttps://wiki.chongtin.com/lib/tpl/bootstrap3/images/favicon.ico">
        <title>Tutorial Site</title>
        <link>https://wiki.chongtin.com/</link>
        <url>https://wiki.chongtin.com/ttps://wiki.chongtin.com/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.chongtin.com/springboot/adding_customized_pre-authentication?do=revisions&amp;rev=1539137784">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-10T10:16:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Adding Customized Pre-Authentication</title>
        <link>https://wiki.chongtin.com/springboot/adding_customized_pre-authentication?do=revisions&amp;rev=1539137784</link>
        <description>Adding Customized Pre-Authentication

Adding a customized pre-authentication in spring boot takes the following 4 steps:

	*  Create an authentication token that extends AbstractAuthenticationToken
	*  Create an authentication filter that extends AbstractAuthenticationProcessingFilter</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/adding_customized_properties_in_application.properties_file?do=revisions&amp;rev=1621928518">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-25T15:41:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Adding Customized Properties in Application.properties file</title>
        <link>https://wiki.chongtin.com/springboot/adding_customized_properties_in_application.properties_file?do=revisions&amp;rev=1621928518</link>
        <description>Adding Customized Properties in Application.properties file

	*  In application.properties files, add your own properties such as 
mypropertis.version=dev

 in the empty space. Here we use mypropertis as prefix, you can use whatever you want.

	*  To read such value, create a class as a @Component</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/basic_websocket?do=revisions&amp;rev=1633579569">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-07T12:06:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Basic Websocket</title>
        <link>https://wiki.chongtin.com/springboot/basic_websocket?do=revisions&amp;rev=1633579569</link>
        <description>Basic Websocket

This is going to build a STOMP based websocket on server site.

	*  Add dependency to POM.XML
	*  Add a EnableWebSocketMessageBroker configuration
	*  Add a controller to handle the web socket package.

Add dependency to POM.XML

Add the following in POM.XML</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/calling_stored_procedure_with_output_parameters?do=revisions&amp;rev=1609224675">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-29T14:51:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Calling Stored Procedure with Output parameters</title>
        <link>https://wiki.chongtin.com/springboot/calling_stored_procedure_with_output_parameters?do=revisions&amp;rev=1609224675</link>
        <description>Calling Stored Procedure with Output parameters

Assume we have a stored procedure like this in our database:


USE [YOUR_DATABASE_NAME]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER   procedure [dbo].[TestParamOutput]
	@test_input1 INT,
	@test_input2 INT,
	@test_input3 INT,
	@test_input4 INT,
    @test_output1 INT OUTPUT,
	@test_output2 INT OUTPUT,
	@test_output3 INT OUTPUT,
	@test_output4 INT OUTPUT
AS
BEGIN
	SET NOCOUNT ON;
	SELECT @test_output1 = @test_input1+@test_input2;
	SELE…</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/commandlinerunner?do=revisions&amp;rev=1591845267">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-11T11:14:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CommandLineRunner</title>
        <link>https://wiki.chongtin.com/springboot/commandlinerunner?do=revisions&amp;rev=1591845267</link>
        <description>CommandLineRunner

In Spring, CommandLineRunner run right after the application is initialized. It will run only one time, and it is good for initialize values for your application. We can implement it in the root application class, or creating new class with</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/deploy_springboot_2.3.1_on_weblogic_12c?do=revisions&amp;rev=1604287492">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-02T11:24:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Deploy SpringBoot 2 on Weblogic 12c</title>
        <link>https://wiki.chongtin.com/springboot/deploy_springboot_2.3.1_on_weblogic_12c?do=revisions&amp;rev=1604287492</link>
        <description>Deploy SpringBoot 2 on Weblogic 12c

Deploying code on old container is a headache. Here is how I solve it. This example is based on SpringBoot 2.3.1.RELEASE, but should work on other 2.x version.

	*  We need to have the following xml config in those files.</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/development_and_production_application.properties?do=revisions&amp;rev=1609816627">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-05T11:17:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Development and Production application.properties</title>
        <link>https://wiki.chongtin.com/springboot/development_and_production_application.properties?do=revisions&amp;rev=1609816627</link>
        <description>Development and Production application.properties

It is very common to have properties file for local, dev, and prod environment. Mostly use it to handle the database connection setting. To do this:

	*  In the main application.properties file add a line</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/display_detail_log_in_debug_console?do=revisions&amp;rev=1590049519">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-21T16:25:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Display Detail Log in Debug Console</title>
        <link>https://wiki.chongtin.com/springboot/display_detail_log_in_debug_console?do=revisions&amp;rev=1590049519</link>
        <description>Display Detail Log in Debug Console

	*  Open the file application.properties
	*  Add lines 
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/handling_the_trailing_slash_in_url?do=revisions&amp;rev=1590994269">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-01T14:51:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Handling the Trailing Slash in URL</title>
        <link>https://wiki.chongtin.com/springboot/handling_the_trailing_slash_in_url?do=revisions&amp;rev=1590994269</link>
        <description>Handling the Trailing Slash in URL

For now, if you use @RequestMapping, @GetMapping, @PostMapping, ... you will see that if you accidentally added a trailing slash “/” in the URL, you will get a 404 HTTP error.

To handling this problem, we need to add a path matching configurer.</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/having_spring_to_create_the_database_schema?do=revisions&amp;rev=1591002186">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-01T17:03:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Having Spring to Create the Database Schema</title>
        <link>https://wiki.chongtin.com/springboot/having_spring_to_create_the_database_schema?do=revisions&amp;rev=1591002186</link>
        <description>Having Spring to Create the Database Schema

	*  Add the following in the application.properties file:

spring.jpa.properties.javax.persistence.schema-generation.scripts.action=drop-and-create
spring.jpa.properties.javax.persistence.schema-generation.scripts.drop-target=drop.sql
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-source=metadata</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/hibinate_5_ignore_table_column_name_in_entity?do=revisions&amp;rev=1603413827">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-23T08:43:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Hibinate 5 Ignore @Table, @column Name in Entity?</title>
        <link>https://wiki.chongtin.com/springboot/hibinate_5_ignore_table_column_name_in_entity?do=revisions&amp;rev=1603413827</link>
        <description>Hibinate 5 Ignore @Table, @column Name in Entity?

The short answer is Yes. It do it by default.

But you can still use the old way. If you want to old behaviors, to use @Table (name = “XxxXxxXxx”) for your Entity, or @Column(name = “YyyYyyYyy”</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/mapping_url_to_local_file_system?do=revisions&amp;rev=1590996726">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-01T15:32:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Mapping URL to Local File System</title>
        <link>https://wiki.chongtin.com/springboot/mapping_url_to_local_file_system?do=revisions&amp;rev=1590996726</link>
        <description>Mapping URL to Local File System

For File System

It is possible for us to map a URL to the sever local file system. Here is how we do it:

	*  Write a WebConfiguration class with @Configuration annotation that implements WebMvcConfigurer.
	*  @Override that method</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/multiple_datasources?do=revisions&amp;rev=1612766780">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-08T14:46:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Multiple Data Sources</title>
        <link>https://wiki.chongtin.com/springboot/multiple_datasources?do=revisions&amp;rev=1612766780</link>
        <description>Multiple Data Sources

	*  To have multiple data source, you need to write it in code. You cannot do it alone in application.properties (at least up to now (2021/02/08)).
	*  Add multiple @Configuration with @EnableJpaRepositories. During config, add the package location of the entities related to this data source.</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/run_spring_not_as_server?do=revisions&amp;rev=1607582925">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-10T14:48:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Run Spring Not as Server</title>
        <link>https://wiki.chongtin.com/springboot/run_spring_not_as_server?do=revisions&amp;rev=1607582925</link>
        <description>Run Spring Not as Server

Under the directory /scr/main/resources/application.properties, add the following line:


spring.main.web-application-type=NONE 


In that case, Spring will run as application, and end once it task is completed. You might want to  implements CommandLineRunner in your main application class in that case.</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/scheduling_task?do=revisions&amp;rev=1539653636">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-16T09:33:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Scheduling Task</title>
        <link>https://wiki.chongtin.com/springboot/scheduling_task?do=revisions&amp;rev=1539653636</link>
        <description>Scheduling Task

Scheduling Task include two steps. The First one is to add @EnableScheduling in the application, the second is the put @Scheduled on the top of the task/method. 

Put @EnableScheduling at the Application class


@SpringBootApplication
@EnableScheduling
public class Application {
   public static void main(String[] args) throws Exception {
       SpringApplication.run(Application.class);
   }
}</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_basic_jpa?do=revisions&amp;rev=1590053132">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-21T17:25:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Basic JPA</title>
        <link>https://wiki.chongtin.com/springboot/spring_basic_jpa?do=revisions&amp;rev=1590053132</link>
        <description>Spring Basic JPA

	*  Assume we have a domain class call cat as shown at the end of this page
	*  Create a new package call doa under your project package
	*  Create an interface name CatRepository that extends CrudRepository
package com.example.demo.dao
import com.example.demo.domain.Cat
import org.springframework.data.repository.CrudRepository
interface CatRepository extends CrudRepository&lt;Cat, Long&gt;{
    Cat findById(long id)
    List&lt;Cat&gt; findByName(String name)
    List&lt;Cat&gt; findByNameAndBr…</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_form_input?do=revisions&amp;rev=1590463506">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-26T11:25:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Form Input</title>
        <link>https://wiki.chongtin.com/springboot/spring_form_input?do=revisions&amp;rev=1590463506</link>
        <description>Spring Form Input

build.gradle

Include those in the dependencies. We need the javax.validation library for error handling.


    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_form_input_from_httpservletrequest?do=revisions&amp;rev=1590467457">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-26T12:30:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Form Input From HttpServletRequest</title>
        <link>https://wiki.chongtin.com/springboot/spring_form_input_from_httpservletrequest?do=revisions&amp;rev=1590467457</link>
        <description>Spring Form Input From HttpServletRequest

From those who do not like what Spring automatically bind the form input to an object, we can do it ourselves by using HttpServletRequest.

	*  In your controller, import javax.servlet.http.HttpServletRequest</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_jpa_dto_mapping?do=revisions&amp;rev=1610423744">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-12T11:55:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring JPA DTO Mapping</title>
        <link>https://wiki.chongtin.com/springboot/spring_jpa_dto_mapping?do=revisions&amp;rev=1610423744</link>
        <description>Spring JPA DTO Mapping

Using SqlResultSetMapping

Here has a good example about it.
&lt;https://stackoverflow.com/questions/64762080/how-to-map-sql-native-query-result-into-dto-in-spring-jpa-repository&gt;
A copy was made here just in case it gone. All credit for the below two code sections go to SternK on stackoverflow.


import javax.persistence.NamedNativeQuery;
import javax.persistence.SqlResultSetMapping;
import javax.persistence.ConstructorResult;
import javax.persistence.ColumnResult;

@Entity…</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_restcontroller?do=revisions&amp;rev=1590650239">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-28T15:17:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring RestController</title>
        <link>https://wiki.chongtin.com/springboot/spring_restcontroller?do=revisions&amp;rev=1590650239</link>
        <description>Spring RestController

	*  Create a package call controllers (could be anything, but this name make it clear) under your project root package.
	*  Create a class call Home (could be anything, but this name make it clear) in the controllers package.
	*</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_restcontroller_better_error_handling?do=revisions&amp;rev=1590650554">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-28T15:22:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring RestController Better Error Handling</title>
        <link>https://wiki.chongtin.com/springboot/spring_restcontroller_better_error_handling?do=revisions&amp;rev=1590650554</link>
        <description>Spring RestController Better Error Handling

Instead of returning the plain old Java object in the mapping method, we can use return a ResponseEntity&lt;T&gt; object. For exmaple:


    @GetMapping(&quot;/&quot;)
    public ResponseEntity&lt;Book&gt; index() {
        try {
            Book b = bookService.editBookName(1);
            return ResponseEntity.ok(b);
        } catch (Exception e) {
            e.printStackTrace();
            return ResponseEntity.status(HttpStatus.CONFLICT).body(null);
        }
    }</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_simple_ajax_authentication?do=revisions&amp;rev=1604452467">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T09:14:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Simple Ajax Authentication</title>
        <link>https://wiki.chongtin.com/springboot/spring_simple_ajax_authentication?do=revisions&amp;rev=1604452467</link>
        <description>Spring Simple Ajax Authentication

Assume you have already read &lt;https://wiki.chongtin.com/springboot/spring_simple_username-password_authentication_with_h2&gt;. If not, do it because we need to use h2 database to store our users.

Unless you want to put the username, and password in your HTTP header every time, otherwise, Ajax authentication is usually use for the very beginning of the JWT authentication when the front-end use their login:password for exchanging the JWT access token, and refresh t…</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_simple_jwt_authentication?do=revisions&amp;rev=1592273767">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-16T10:16:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Simple JWT Authentication</title>
        <link>https://wiki.chongtin.com/springboot/spring_simple_jwt_authentication?do=revisions&amp;rev=1592273767</link>
        <description>Spring Simple JWT Authentication

	*  Add dependencies in build.gradle, we use auth0 library here. (compile “com.auth0:java-jwt:3.4.0”)
	*  Create our Authentication Token (JwtAuthToken extends AbstractAuthenticationToken)
	*  Create our Authentication Filter (JwtAuthFilter extends AbstractAuthenticationProcessingFilter)</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_simple_username-password_authentication_with_h2?do=revisions&amp;rev=1591691438">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-09T16:30:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Simple Username-Password Authentication with H2</title>
        <link>https://wiki.chongtin.com/springboot/spring_simple_username-password_authentication_with_h2?do=revisions&amp;rev=1591691438</link>
        <description>Spring Simple Username-Password Authentication with H2

Basically, we have 6 steps:

	*  Setup the project dependencies
	*  Create User Role entities. User entity implement UserDetails
	*  Create Your own UserDetailsService
	*  Create WebSecurityConfig extends WebSecurityConfigurerAdapter</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_using_datasource_or_jdbctemplate?do=revisions&amp;rev=1590978751">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-01T10:32:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Using DataSource or JdbcTemplate</title>
        <link>https://wiki.chongtin.com/springboot/spring_using_datasource_or_jdbctemplate?do=revisions&amp;rev=1590978751</link>
        <description>Spring Using DataSource or JdbcTemplate

DataSource

Simply do 


    @Autowired
    DataSource dataSource;


and we can use the dataSource in our code like:


   String sql = &quot;YOUR_SQL_QUERY&quot;; //such as &quot;UPDATE Book  SET NAME = '&quot; + String.valueOf(iRandom) + &quot;' WHERE ID = 1&quot;
   Connection connection = dataSource.getConnection();
   Statement statement = connection.createStatement();
   int iAffectedRowCount = statement.executeUpdate(sql);
   connection.close();</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/spring_web_security?do=revisions&amp;rev=1590373294">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-25T10:21:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spring Web Security</title>
        <link>https://wiki.chongtin.com/springboot/spring_web_security?do=revisions&amp;rev=1590373294</link>
        <description>Spring Web Security

Here is how we do it step-by-step. Code are written in Groovy, not JAVA.

Dependency

For build.gradle, add spring-boot-starter-security in the dependencies.


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.security:spring-security-test'
    implemen…</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/start_from_spring_initializr?do=revisions&amp;rev=1590029913">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-21T10:58:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Start From Spring Initializr</title>
        <link>https://wiki.chongtin.com/springboot/start_from_spring_initializr?do=revisions&amp;rev=1590029913</link>
        <description>Start From Spring Initializr

	*  Go to &lt;https://start.spring.io/&gt;
	*  Choice your setting
	*  Click the generate button to download the skeleton of the project.
	*  Open your project with Spring IDE or IntelliJ
	*  Let the IDE to download the dependencies 
	*  For proxy setting, reference</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/table_naming_being_ignored?do=revisions&amp;rev=1607679989">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-11T17:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Table Naming Being Ignored</title>
        <link>https://wiki.chongtin.com/springboot/table_naming_being_ignored?do=revisions&amp;rev=1607679989</link>
        <description>Table Naming Being Ignored

Since Spring 5, Naming using @Table(name=“XxxXxxXxx”) will get you something like xxx_xxx_xxx for table name instead of the name you typed. To fix it, add


spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/using_h2_as_datasource_for_testing?do=revisions&amp;rev=1607678425">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-11T17:20:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Using H2 As DataSource For Testing</title>
        <link>https://wiki.chongtin.com/springboot/using_h2_as_datasource_for_testing?do=revisions&amp;rev=1607678425</link>
        <description>Using H2 As DataSource For Testing

	*  In build.gradle, add runtimeOnly 'com.h2database:h2 in dependencies section
	*  Open application.properties
	*  Add lines
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true</description>
    </item>
    <item rdf:about="https://wiki.chongtin.com/springboot/what_is_json_web_token_jwt?do=revisions&amp;rev=1604539726">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-05T09:28:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>What is JSON Web Token (JWT)</title>
        <link>https://wiki.chongtin.com/springboot/what_is_json_web_token_jwt?do=revisions&amp;rev=1604539726</link>
        <description>What is JSON Web Token (JWT)

A jwt look like this: (No worry, it has already been expired a long time ago)


eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmYWtlX2xvZ2luIiwiZXhwIjoxNjA0NTM4ODIwLCJyb2xlcyI6IlJPTEVfVVNFUiwifQ.dIhtHS77agSc7_Wrkzn429aZeuWWXkXLopnMYBDJdZs</description>
    </item>
</rdf:RDF>
