Revize c1e7e376
Přidáno uživatelem Jakub Šmíd před asi 3 roky(ů)
backend/src/main/java/cz/zcu/kiv/backendapi/BackendApiApplication.java | ||
---|---|---|
1 | 1 |
package cz.zcu.kiv.backendapi; |
2 | 2 |
|
3 |
import java.util.logging.Logger; |
|
4 | 3 |
import org.springframework.boot.SpringApplication; |
5 | 4 |
import org.springframework.boot.autoconfigure.SpringBootApplication; |
6 | 5 |
|
6 |
import java.util.logging.Logger; |
|
7 |
|
|
7 | 8 |
@SpringBootApplication |
8 | 9 |
public class BackendApiApplication { |
9 | 10 |
|
backend/src/main/java/cz/zcu/kiv/backendapi/StubController.java | ||
---|---|---|
1 | 1 |
package cz.zcu.kiv.backendapi; |
2 | 2 |
|
3 |
import java.util.logging.Logger; |
|
4 |
import org.springframework.web.bind.annotation.GetMapping; |
|
5 | 3 |
import org.springframework.web.bind.annotation.RestController; |
6 | 4 |
|
5 |
import java.util.logging.Logger; |
|
6 |
|
|
7 | 7 |
@RestController() |
8 | 8 |
public class StubController { |
9 | 9 |
|
backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameRepository.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.stereotype.Repository; |
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 | 5 |
|
7 | 6 |
/** |
8 | 7 |
* Alternative name repository |
9 | 8 |
*/ |
10 | 9 |
@Repository |
11 |
@Transactional(readOnly = true) |
|
12 | 10 |
public interface AlternativeNameRepository extends JpaRepository<AlternativeName, AlternativeName> { |
13 | 11 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyRepository.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.stereotype.Repository; |
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 | 5 |
|
7 | 6 |
/** |
8 | 7 |
* Bibliography repository |
9 | 8 |
*/ |
10 | 9 |
@Repository |
11 |
@Transactional(readOnly = true) |
|
12 | 10 |
public interface BibliographyRepository extends JpaRepository<Bibliography, Bibliography> { |
13 | 11 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogEntryRepository.java | ||
---|---|---|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.data.jpa.repository.Query; |
5 | 5 |
import org.springframework.stereotype.Repository; |
6 |
import org.springframework.transaction.annotation.Transactional; |
|
7 | 6 |
|
8 | 7 |
import java.util.Set; |
9 | 8 |
import java.util.UUID; |
... | ... | |
12 | 11 |
* Catalog repository |
13 | 12 |
*/ |
14 | 13 |
@Repository |
15 |
@Transactional(readOnly = true) |
|
16 | 14 |
public interface CatalogEntryRepository extends JpaRepository<CatalogEntry, UUID> { |
17 | 15 |
|
18 | 16 |
/** |
backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogEntryServiceImpl.java | ||
---|---|---|
4 | 4 |
import cz.zcu.kiv.backendapi.bibliography.Bibliography; |
5 | 5 |
import cz.zcu.kiv.backendapi.country.Country; |
6 | 6 |
import cz.zcu.kiv.backendapi.exception.ApiRequestException; |
7 |
import cz.zcu.kiv.backendapi.type.Type; |
|
8 | 7 |
import cz.zcu.kiv.backendapi.type.ITypeService; |
8 |
import cz.zcu.kiv.backendapi.type.Type; |
|
9 | 9 |
import cz.zcu.kiv.backendapi.writtenform.WrittenForm; |
10 | 10 |
import lombok.RequiredArgsConstructor; |
11 | 11 |
import lombok.extern.slf4j.Slf4j; |
backend/src/main/java/cz/zcu/kiv/backendapi/config/DataInitiator.java | ||
---|---|---|
1 | 1 |
package cz.zcu.kiv.backendapi.config; |
2 | 2 |
|
3 | 3 |
import cz.zcu.kiv.backendapi.catalog.CatalogEntry; |
4 |
import cz.zcu.kiv.backendapi.type.Type; |
|
5 | 4 |
import cz.zcu.kiv.backendapi.catalog.CatalogEntryRepository; |
6 | 5 |
import cz.zcu.kiv.backendapi.catalog.ICatalogEntryService; |
7 | 6 |
import cz.zcu.kiv.backendapi.type.ITypeService; |
7 |
import cz.zcu.kiv.backendapi.type.Type; |
|
8 | 8 |
import cz.zcu.kiv.backendapi.user.UserEntity; |
9 | 9 |
import cz.zcu.kiv.backendapi.user.UserRepository; |
10 | 10 |
import lombok.RequiredArgsConstructor; |
backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryRepository.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.stereotype.Repository; |
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 | 5 |
|
7 | 6 |
/** |
8 | 7 |
* Country repository |
9 | 8 |
*/ |
10 | 9 |
@Repository |
11 |
@Transactional(readOnly = true) |
|
12 | 10 |
public interface CountryRepository extends JpaRepository<Country, Country> { |
13 | 11 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/security/SecurityConfig.java | ||
---|---|---|
1 | 1 |
package cz.zcu.kiv.backendapi.security; |
2 | 2 |
|
3 |
import cz.zcu.kiv.backendapi.security.jwt.JwtUtils; |
|
4 | 3 |
import cz.zcu.kiv.backendapi.security.jwt.JwtTokenVerifier; |
5 | 4 |
import cz.zcu.kiv.backendapi.security.jwt.JwtUsernameAndPasswordAuthenticationFilter; |
5 |
import cz.zcu.kiv.backendapi.security.jwt.JwtUtils; |
|
6 | 6 |
import cz.zcu.kiv.backendapi.user.Permission; |
7 | 7 |
import cz.zcu.kiv.backendapi.user.Role; |
8 | 8 |
import lombok.RequiredArgsConstructor; |
... | ... | |
12 | 12 |
import org.springframework.security.authentication.dao.DaoAuthenticationProvider; |
13 | 13 |
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; |
14 | 14 |
import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
15 |
import org.springframework.security.config.annotation.web.builders.WebSecurity; |
|
16 | 15 |
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; |
17 | 16 |
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |
18 | 17 |
import org.springframework.security.config.http.SessionCreationPolicy; |
19 | 18 |
import org.springframework.security.core.userdetails.UserDetailsService; |
20 | 19 |
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
21 |
import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; |
|
22 | 20 |
|
23 | 21 |
/** |
24 | 22 |
* Security config class |
backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtTokenVerifier.java | ||
---|---|---|
19 | 19 |
import javax.servlet.http.HttpServletRequest; |
20 | 20 |
import javax.servlet.http.HttpServletResponse; |
21 | 21 |
import java.io.IOException; |
22 |
import java.util.*; |
|
22 |
import java.util.Arrays; |
|
23 |
import java.util.Collection; |
|
24 |
import java.util.List; |
|
23 | 25 |
import java.util.stream.Collectors; |
24 | 26 |
|
25 | 27 |
|
backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/ITitlePageService.java | ||
---|---|---|
1 |
package cz.zcu.kiv.backendapi.titlepage; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
|
|
5 |
/** |
|
6 |
* Title page service interface |
|
7 |
*/ |
|
8 |
public interface ITitlePageService { |
|
9 |
/** |
|
10 |
* Returns all title pages |
|
11 |
* |
|
12 |
* @return list of title pages |
|
13 |
*/ |
|
14 |
List<TitlePage> getTitlePages(); |
|
15 |
|
|
16 |
void addNewTitlePage(TitlePage titlePage); |
|
17 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePage.java | ||
---|---|---|
1 |
package cz.zcu.kiv.backendapi.titlepage; |
|
2 |
|
|
3 |
import lombok.AllArgsConstructor; |
|
4 |
import lombok.Data; |
|
5 |
import lombok.NoArgsConstructor; |
|
6 |
|
|
7 |
import javax.persistence.Column; |
|
8 |
import javax.persistence.Entity; |
|
9 |
import javax.persistence.Id; |
|
10 |
import javax.persistence.Table; |
|
11 |
|
|
12 |
/** |
|
13 |
* Class representing title page |
|
14 |
*/ |
|
15 |
@Data |
|
16 |
@NoArgsConstructor |
|
17 |
@AllArgsConstructor |
|
18 |
@Entity |
|
19 |
@Table(name = "title_page") |
|
20 |
public class TitlePage { |
|
21 |
|
|
22 |
/** |
|
23 |
* Title – serves as ID |
|
24 |
*/ |
|
25 |
@Id |
|
26 |
private String title; |
|
27 |
|
|
28 |
/** |
|
29 |
* Content of the title page |
|
30 |
*/ |
|
31 |
@Column(length = 100000) |
|
32 |
private String content; |
|
33 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageController.java | ||
---|---|---|
1 |
package cz.zcu.kiv.backendapi.titlepage; |
|
2 |
|
|
3 |
import lombok.RequiredArgsConstructor; |
|
4 |
import org.springframework.http.HttpStatus; |
|
5 |
import org.springframework.http.ResponseEntity; |
|
6 |
import org.springframework.web.bind.annotation.*; |
|
7 |
|
|
8 |
import java.util.List; |
|
9 |
|
|
10 |
/** |
|
11 |
* Controller for title page |
|
12 |
*/ |
|
13 |
@RequiredArgsConstructor |
|
14 |
@RestController |
|
15 |
@RequestMapping("title-page") |
|
16 |
public class TitlePageController { |
|
17 |
/** |
|
18 |
* Title page service |
|
19 |
*/ |
|
20 |
private final ITitlePageService titlePageService; |
|
21 |
|
|
22 |
/** |
|
23 |
* Returns list of all title pages |
|
24 |
* |
|
25 |
* @return list of all title pages |
|
26 |
*/ |
|
27 |
@GetMapping("") |
|
28 |
public ResponseEntity<List<TitlePage>> getAllTitlePages() { |
|
29 |
return new ResponseEntity<>(titlePageService.getTitlePages(), HttpStatus.OK); |
|
30 |
} |
|
31 |
|
|
32 |
/** |
|
33 |
* Adds new title page |
|
34 |
* |
|
35 |
* @param titlePage title page |
|
36 |
*/ |
|
37 |
@PostMapping("") |
|
38 |
public void addNewTitlePage(@RequestBody TitlePage titlePage) { |
|
39 |
titlePageService.addNewTitlePage(titlePage); |
|
40 |
} |
|
41 |
|
|
42 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageRepository.java | ||
---|---|---|
1 |
package cz.zcu.kiv.backendapi.titlepage; |
|
2 |
|
|
3 |
import org.springframework.data.jpa.repository.JpaRepository; |
|
4 |
import org.springframework.stereotype.Repository; |
|
5 |
|
|
6 |
/** |
|
7 |
* Title page repository |
|
8 |
*/ |
|
9 |
@Repository |
|
10 |
public interface TitlePageRepository extends JpaRepository<TitlePage, String> { |
|
11 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementation.java | ||
---|---|---|
1 |
package cz.zcu.kiv.backendapi.titlepage; |
|
2 |
|
|
3 |
import lombok.RequiredArgsConstructor; |
|
4 |
import org.springframework.stereotype.Service; |
|
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 |
|
|
7 |
import java.util.List; |
|
8 |
|
|
9 |
/** |
|
10 |
* Title page service implementation |
|
11 |
*/ |
|
12 |
@Service |
|
13 |
@Transactional |
|
14 |
@RequiredArgsConstructor |
|
15 |
public class TitlePageServiceImplementation implements ITitlePageService { |
|
16 |
/** |
|
17 |
* Title page repository |
|
18 |
*/ |
|
19 |
private final TitlePageRepository titlePageRepository; |
|
20 |
|
|
21 |
@Override |
|
22 |
public List<TitlePage> getTitlePages() { |
|
23 |
return titlePageRepository.findAll(); |
|
24 |
} |
|
25 |
|
|
26 |
@Override |
|
27 |
public void addNewTitlePage(TitlePage titlePage) { |
|
28 |
titlePageRepository.save(titlePage); |
|
29 |
} |
|
30 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeRepository.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.stereotype.Repository; |
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 | 5 |
|
7 | 6 |
|
8 | 7 |
/** |
9 | 8 |
* Type repository |
10 | 9 |
*/ |
11 | 10 |
@Repository |
12 |
@Transactional(readOnly = true) |
|
13 | 11 |
public interface TypeRepository extends JpaRepository<Type, String> { |
14 | 12 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/user/UserController.java | ||
---|---|---|
5 | 5 |
import com.auth0.jwt.algorithms.Algorithm; |
6 | 6 |
import com.auth0.jwt.interfaces.DecodedJWT; |
7 | 7 |
import com.google.common.base.Strings; |
8 |
import cz.zcu.kiv.backendapi.exception.ApiRequestException; |
|
8 | 9 |
import cz.zcu.kiv.backendapi.password.PasswordDto; |
9 | 10 |
import cz.zcu.kiv.backendapi.security.jwt.JwtUtils; |
10 |
import cz.zcu.kiv.backendapi.exception.ApiRequestException; |
|
11 | 11 |
import lombok.RequiredArgsConstructor; |
12 | 12 |
import lombok.extern.slf4j.Slf4j; |
13 | 13 |
import org.springframework.http.HttpHeaders; |
14 | 14 |
import org.springframework.http.HttpStatus; |
15 |
import org.springframework.http.MediaType; |
|
16 | 15 |
import org.springframework.http.ResponseEntity; |
17 |
import org.springframework.security.access.prepost.PreAuthorize; |
|
18 | 16 |
import org.springframework.security.core.GrantedAuthority; |
19 | 17 |
import org.springframework.web.bind.annotation.*; |
20 | 18 |
import premission.PermissionDto; |
... | ... | |
54 | 52 |
* |
55 | 53 |
* @param userDto user DTO |
56 | 54 |
*/ |
57 |
@PostMapping("/user/register")
|
|
55 |
@PostMapping("/register") |
|
58 | 56 |
public void registerNewUser(@RequestBody @Valid UserDto userDto) { |
59 | 57 |
userService.registerNewUser(userDto); |
60 | 58 |
} |
backend/src/main/java/cz/zcu/kiv/backendapi/user/UserEntity.java | ||
---|---|---|
7 | 7 |
import org.springframework.security.core.authority.SimpleGrantedAuthority; |
8 | 8 |
import org.springframework.security.core.userdetails.UserDetails; |
9 | 9 |
|
10 |
import javax.persistence.*; |
|
10 |
import javax.persistence.Column; |
|
11 |
import javax.persistence.Entity; |
|
12 |
import javax.persistence.Id; |
|
13 |
import javax.persistence.Table; |
|
11 | 14 |
import java.util.ArrayList; |
12 | 15 |
import java.util.Collection; |
13 | 16 |
import java.util.List; |
backend/src/main/java/cz/zcu/kiv/backendapi/user/UserRepository.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.stereotype.Repository; |
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 | 5 |
|
7 | 6 |
import java.util.Optional; |
8 | 7 |
|
... | ... | |
11 | 10 |
* User repository |
12 | 11 |
*/ |
13 | 12 |
@Repository |
14 |
@Transactional(readOnly = true) |
|
15 | 13 |
public interface UserRepository extends JpaRepository<UserEntity, String> { |
16 | 14 |
/** |
17 | 15 |
* Returns user by email (username) |
backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormRepository.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.data.jpa.repository.JpaRepository; |
4 | 4 |
import org.springframework.stereotype.Repository; |
5 |
import org.springframework.transaction.annotation.Transactional; |
|
6 | 5 |
|
7 | 6 |
/** |
8 | 7 |
* Written form repository |
9 | 8 |
*/ |
10 | 9 |
@Repository |
11 |
@Transactional(readOnly = true) |
|
12 | 10 |
public interface WrittenFormRepository extends JpaRepository<WrittenForm, WrittenForm> { |
13 | 11 |
} |
Také k dispozici: Unified diff
Added title page (and its modification)