Skip to content

Commit

Permalink
chto-to slomal
Browse files Browse the repository at this point in the history
  • Loading branch information
Maks027 committed Dec 27, 2019
1 parent 17b316c commit 16814b5
Show file tree
Hide file tree
Showing 32 changed files with 291 additions and 759 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mustache</artifactId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
23 changes: 23 additions & 0 deletions src/main/java/com/hotdog/Service/UserService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.hotdog.Service;

import com.hotdog.repositories.UserRepo;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

@Service
public class UserService implements UserDetailsService {

private final UserRepo userRepo;

public UserService(UserRepo userRepo) {
this.userRepo = userRepo;
}


@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
return userRepo.findByUsername(s);
}
}
23 changes: 14 additions & 9 deletions src/main/java/com/hotdog/config/WebSecurityConfig.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.hotdog.config;

import org.springframework.beans.factory.annotation.Autowired;
import com.hotdog.Service.UserService;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
Expand All @@ -13,14 +13,22 @@
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;

private final DataSource dataSource;

private final UserService userService;

public WebSecurityConfig(DataSource dataSource, UserService userService) {
this.dataSource = dataSource;
this.userService = userService;
}


@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/registration", "/posts", "/posts/all").permitAll()
.antMatchers("/", "/registration", "/posts", "/posts/all", "/img/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
Expand All @@ -33,11 +41,8 @@ protected void configure(HttpSecurity http) throws Exception {

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication()
.dataSource(dataSource)
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.usersByUsernameQuery("select username, password, active from usr where username=?")
.authoritiesByUsernameQuery("Select u.username, ur.roles from usr u inner join user_role ur on u.id = ur.id_user where u.username=?");
auth.userDetailsService(userService)
.passwordEncoder(NoOpPasswordEncoder.getInstance());

}
}
28 changes: 2 additions & 26 deletions src/main/java/com/hotdog/controllers/GreetingsController.java
Original file line number Diff line number Diff line change
@@ -1,40 +1,16 @@
package com.hotdog.controllers;
import com.hotdog.entities.Info;
import com.hotdog.repositories.InfoRepository;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

@Controller
public class GreetingsController {
@Autowired
private InfoRepository infoRepository;

@GetMapping("/")
public String greeting(Map<String, Object> model) {

return "greeting";
}

@GetMapping("/main")
public String main(Map<String, Object> model) {
Iterable<Info> info = infoRepository.findAll();
model.put("info", info);
return "main";
}

@PostMapping("/main")
public String add(@RequestParam String name, @RequestParam String email, Map<String, Object> model)
{
Info info = new Info(name, email);

infoRepository.save(info);

infoRepository.findAll();
model.put("info", info);
return "main";
}
}
38 changes: 0 additions & 38 deletions src/main/java/com/hotdog/controllers/MainController.java

This file was deleted.

19 changes: 9 additions & 10 deletions src/main/java/com/hotdog/controllers/PostsController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@


import com.hotdog.entities.Posts;
import com.hotdog.entities.User;
import com.hotdog.repositories.PostsRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
Expand All @@ -18,14 +20,12 @@
@Controller
public class PostsController {

@Autowired
private PostsRepo postsRepo;
private final PostsRepo postsRepo;

public PostsController(PostsRepo postsRepo) {
this.postsRepo = postsRepo;
}

// @GetMapping("posts/all")
// public @ResponseBody Iterable<Posts> getAllPosts() {
//
// return postsRepo.findAll();
// }
@Value("${upload.path}")
private String uploadPath;

Expand All @@ -45,6 +45,7 @@ public String postForm(){
public String add(@RequestParam String pstName,
@RequestParam String pstText,
@RequestParam("file") MultipartFile file,
@AuthenticationPrincipal User user,
Map<String, Object> model) throws IOException {
Posts p = new Posts();

Expand All @@ -64,13 +65,11 @@ public String add(@RequestParam String pstName,

p.setPostName(pstName);
p.setPostText(pstText);
p.setAuthor(user);

postsRepo.save(p);

return "redirect:/posts/all";
}




}
10 changes: 6 additions & 4 deletions src/main/java/com/hotdog/controllers/RegistrationController.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@

@Controller
public class RegistrationController {
@Autowired
private UserRepo userRepo;

private final UserRepo userRepo;

public RegistrationController(UserRepo userRepo) {
this.userRepo = userRepo;
}

@GetMapping("/registration")
public String registration(){
Expand All @@ -27,8 +31,6 @@ public String addUser(User user, Map<String, Object> model){
user.setRoles(Collections.singleton(Role.USER));

userRepo.save(user);


return "redirect:/login";
}
}
53 changes: 0 additions & 53 deletions src/main/java/com/hotdog/entities/Info.java

This file was deleted.

16 changes: 16 additions & 0 deletions src/main/java/com/hotdog/entities/Posts.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,24 @@ public class Posts {
@CreationTimestamp
private LocalDateTime timeStamp;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
private User author;

public Posts() {}

public User getAuthor() {
return author;
}

public String getAuthorName(){
return author != null ? author.getUsername() : "<none>";
}

public void setAuthor(User author) {
this.author = author;
}

public LocalDateTime getTimeStamp() {
return timeStamp;
}
Expand Down
9 changes: 8 additions & 1 deletion src/main/java/com/hotdog/entities/Role.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
package com.hotdog.entities;

public enum Role {
import org.springframework.security.core.GrantedAuthority;

public enum Role implements GrantedAuthority {
USER;

@Override
public String getAuthority() {
return name();
}
}
34 changes: 32 additions & 2 deletions src/main/java/com/hotdog/entities/User.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package com.hotdog.entities;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import javax.persistence.*;
import java.util.Collection;
import java.util.Set;

@Entity
@Table(name= "usr")
public class User {
public class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
Expand All @@ -15,7 +19,33 @@ public class User {
private String fullName;
private boolean active;

protected User() {
public User() {
}


@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return getRoles();
}

@Override
public boolean isAccountNonExpired() {
return true;
}

@Override
public boolean isAccountNonLocked() {
return true;
}

@Override
public boolean isCredentialsNonExpired() {
return true;
}

@Override
public boolean isEnabled() {
return isActive();
}

@ElementCollection(targetClass = Role.class, fetch = FetchType.EAGER)
Expand Down
Loading

0 comments on commit 16814b5

Please sign in to comment.