Ein einfaches Kontaktformular erstellen: Unterschied zwischen den Versionen

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
* Spring Boot DevTools
* Spring Boot DevTools
* Spring Data JPA Starter
* Spring Data JPA Starter
* H2 Database
* Spring Security Starter
* Spring Security Starter
* Validation Starter
 
* Spring Boot session
===Projektstruktur===
===Projektstruktur===
* src
* src
Zeile 45: Zeile 43:
* Konfigurieren Sie die Sicherheit
* Konfigurieren Sie die Sicherheit
* Testen Sie die Anwendung
* Testen Sie die Anwendung
==Konfigurieren Sie die Datenbank h2==
==Konfigurieren Sie die Datenbank h2==
* application.properties
* application.properties
Zeile 64: Zeile 63:
@Configuration
@Configuration
@EnableWebSecurity
@EnableWebSecurity
public class SecurityConfig {
public class Anmeldung {
 
    @Value("${spring.security.user.name}")
    private String username;
 
    @Value("${spring.security.user.password}")
    private String password;
 
 
 


     @Bean
     @Bean
     public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
     public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
         http
         http
            .authorizeHttpRequests((authz) -> authz
                .authorizeHttpRequests((authz) -> authz
                .requestMatchers("/admin/**").denyAll() // Verweigere Zugriff auf /admin/** für alle Benutzer
                                .requestMatchers("/admin/**").denyAll() // Verweigere Zugriff auf /admin/** für alle Benutzer
                  
                  
                .requestMatchers("/**").permitAll() // Erlaube Zugriff auf /public/** ohne Authentifizierung
                                .requestMatchers("/**").permitAll() // Erlaube Zugriff auf /public/** ohne Authentifizierung
                .anyRequest().authenticated() // Alle anderen Anfragen erfordern Authentifizierung
                                .anyRequest().authenticated() // Alle anderen Anfragen erfordern Authentifizierung
            )
                )
            .formLogin(withDefaults()); // Aktiviere Standard-Formularanmeldung
                .formLogin(withDefaults()); // Aktiviere Standard-Formularanmeldung
         return http.build();
         return http.build();
     }
     }
Zeile 81: Zeile 89:
     @Bean
     @Bean
     public UserDetailsService userDetailsService() {
     public UserDetailsService userDetailsService() {
         UserDetails user = User.withDefaultPasswordEncoder()
         UserDetails user = org.springframework.security.core.userdetails.User.withUsername(username)
             .username("Test")
             .password(PasswordEncoderFactories.createDelegatingPasswordEncoder().encode(password))
            .password("Test")
             .roles("USER")
             .roles("USER")
             .build();
             .build();
Zeile 89: Zeile 96:
     }
     }
}
}


</pre>
</pre>

Aktuelle Version vom 19. Dezember 2024, 05:48 Uhr

Kontaktformular erstellen mit Spring boot mvc

Spring boot Starter

  • Spring Web Starter
  • Thymeleaf
  • Spring Boot DevTools
  • Spring Data JPA Starter
  • Spring Security Starter

Projektstruktur

  • src
    • main
      • java
        • com.example.demo
          • controller
            • HomeController.java
          • model
            • Contact.java
          • repository
            • ContactRepository.java
          • service
            • ContactService.java
          • DemoApplication.java
      • resources
        • static
          • css
            • style.css
        • templates
          • contact.html
          • index.html
          • login.html
          • register.html
          • welcome.html
        • application.properties

Roadmap

  • Erstellen Sie ein neues Spring Boot-Projekt
  • Fügen Sie die Abhängigkeiten hinzu
  • Konfigurieren Sie die Datenbank
  • Erstellen Sie das Modell
  • Erstellen Sie das Repository
  • Erstellen Sie den Service
  • Erstellen Sie den Controller
  • Erstellen Sie die Ansichten
  • Konfigurieren Sie die Sicherheit
  • Testen Sie die Anwendung

Konfigurieren Sie die Datenbank h2

  • application.properties
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.h2.console.path=/h2

Konfigration erstellen Security

Konfigration erstellen Security


@Configuration
@EnableWebSecurity
public class Anmeldung {

    @Value("${spring.security.user.name}")
    private String username;

    @Value("${spring.security.user.password}")
    private String password;




    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests((authz) -> authz
                                .requestMatchers("/admin/**").denyAll() // Verweigere Zugriff auf /admin/** für alle Benutzer
                
                                .requestMatchers("/**").permitAll() // Erlaube Zugriff auf /public/** ohne Authentifizierung
                                .anyRequest().authenticated() // Alle anderen Anfragen erfordern Authentifizierung
                )
                .formLogin(withDefaults()); // Aktiviere Standard-Formularanmeldung
        return http.build();
    }

    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails user = org.springframework.security.core.userdetails.User.withUsername(username)
            .password(PasswordEncoderFactories.createDelegatingPasswordEncoder().encode(password))
            .roles("USER")
            .build();
        return new InMemoryUserDetailsManager(user);
    }
}