diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/config/SecurityConfig.java b/Pinnacle/src/main/java/com/cfive/pinnacle/config/SecurityConfig.java
index 1f323d0..40920e2 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/config/SecurityConfig.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/config/SecurityConfig.java
@@ -14,6 +14,11 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.CorsConfigurationSource;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+
+import java.util.List;
@Configuration
public class SecurityConfig {
@@ -42,7 +47,7 @@ public class SecurityConfig {
}
@Bean
- AuthenticationManager authenticationManager(HttpSecurity httpSecurity, PasswordEncoder passwordEncoder) throws Exception {
+ public AuthenticationManager authenticationManager(HttpSecurity httpSecurity, PasswordEncoder passwordEncoder) throws Exception {
return httpSecurity.getSharedObject(AuthenticationManagerBuilder.class)
.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder)
@@ -50,22 +55,38 @@ public class SecurityConfig {
.build();
}
+ @Bean
+ public CorsConfigurationSource corsConfigurationSource(){
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+ corsConfiguration.setAllowedMethods(List.of("*"));
+ corsConfiguration.setAllowedHeaders(List.of("*"));
+ corsConfiguration.setMaxAge(3600L);
+ corsConfiguration.setAllowedOrigins(List.of("*"));
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**",corsConfiguration);
+ return source;
+ }
+
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
return httpSecurity
// Disable CSRF
- .csrf().disable()
+ .csrf()
+ .disable()
// Do not get SecurityContent by Session
- .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+ .sessionManagement()
+ .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
// Allow anonymous access
.authorizeHttpRequests()
- .requestMatchers("/login").anonymous()
+ .requestMatchers("/login")
+ .anonymous()
// Authentication required
- .anyRequest().authenticated()
+ .anyRequest()
+ .authenticated()
.and()
.logout()
@@ -75,6 +96,10 @@ public class SecurityConfig {
.authenticationEntryPoint(authenticationEntryPointHandler)
.and()
+ .cors()
+ .configurationSource(corsConfigurationSource())
+ .and()
+
.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/ElementController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/ElementController.java
index f4e8cdd..cbe8fce 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/ElementController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/ElementController.java
@@ -1,8 +1,17 @@
package com.cfive.pinnacle.controller.permission;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cfive.pinnacle.entity.common.ResponseResult;
+import com.cfive.pinnacle.entity.permission.Element;
+import com.cfive.pinnacle.service.permission.IElementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
/**
*
* 页面元素 前端控制器
@@ -14,5 +23,26 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/element")
public class ElementController {
+ private IElementService elementService;
+ @Autowired
+ public void setElementService(IElementService elementService) {
+ this.elementService = elementService;
+ }
+
+ @GetMapping
+ public ResponseResult getAllElement() {
+ List elements = elementService.list();
+
+ return ResponseResult.databaseSelectSuccess(elements);
+ }
+
+ @GetMapping("/{id}")
+ public ResponseResult getElement(@PathVariable long id) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(Element::getId, id);
+ Element element = elementService.getOne(wrapper);
+
+ return ResponseResult.databaseSelectSuccess(element);
+ }
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/FileController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/FileController.java
index de8ced5..2ffb710 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/FileController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/FileController.java
@@ -1,8 +1,17 @@
package com.cfive.pinnacle.controller.permission;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cfive.pinnacle.entity.common.ResponseResult;
+import com.cfive.pinnacle.entity.permission.File;
+import com.cfive.pinnacle.service.permission.IFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
/**
*
* 文件 前端控制器
@@ -14,5 +23,26 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/file")
public class FileController {
+ private IFileService fileService;
+ @Autowired
+ public void setFileService(IFileService fileService) {
+ this.fileService = fileService;
+ }
+
+ @GetMapping
+ public ResponseResult getAllFile() {
+ List files = fileService.list();
+
+ return ResponseResult.databaseSelectSuccess(files);
+ }
+
+ @GetMapping("/{id}")
+ public ResponseResult getFile(@PathVariable int id) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(File::getId, id);
+ File file = fileService.getOne(wrapper);
+
+ return ResponseResult.databaseSelectSuccess(file);
+ }
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/LoginController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/LoginController.java
index 3c0d9a1..b726461 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/LoginController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/LoginController.java
@@ -5,14 +5,14 @@ import com.cfive.pinnacle.entity.common.ResponseCode;
import com.cfive.pinnacle.entity.common.ResponseResult;
import com.cfive.pinnacle.service.permission.ILoginService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@RestController
+@CrossOrigin
public class LoginController {
private ILoginService loginService;
@@ -37,4 +37,11 @@ public class LoginController {
return ResponseResult.build(ResponseCode.LOGOUT_FAILED, "Logout Failed", null);
}
}
+
+ @GetMapping("/userInfo")
+ public ResponseResult getUserInfo() {
+ Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+ Object principal = authentication.getPrincipal();
+ return ResponseResult.success(principal);
+ }
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/MenuController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/MenuController.java
index 6b57a22..3583d35 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/MenuController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/MenuController.java
@@ -1,8 +1,17 @@
package com.cfive.pinnacle.controller.permission;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cfive.pinnacle.entity.common.ResponseResult;
+import com.cfive.pinnacle.entity.permission.Menu;
+import com.cfive.pinnacle.service.permission.IMenuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
/**
*
* 菜单 前端控制器
@@ -14,5 +23,26 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/menu")
public class MenuController {
+ private IMenuService menuService;
+ @Autowired
+ public void setMenuService(IMenuService menuService) {
+ this.menuService = menuService;
+ }
+
+ @GetMapping
+ public ResponseResult getAllMenu() {
+ List