0

저는 봄의 세계에 초보자입니다. 일부 CRUD 작업으로 springboot-angularjs 응용 프로그램을 만들어야합니다.스프링 부츠 스프링 보안 앵글

클라이언트에는 LDAP 및 로컬 JDBC 인증 메커니즘이 필요합니다.

두 사용자 모두에게 공통적 인 인증 메커니즘이 필요합니다.

사용자는 역할에 따라 일부 페이지에서 제한되어야합니다. 그리고 각 사용자에게 적용되어야 할 별도의 권한 (Create, Update, Delete) 세트

그리고 관리자 사용자가 역할을 생성해야합니다.

그래서 누가 (어떤 역할) 어떤 페이지에 액세스 할 수 있는지 관리자가 결정할 페이지 단위 승인을 어떻게 구현할 수 있습니까?

@Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.authorizeRequests().antMatchers("/", "/home").permitAll().antMatchers("/admin").hasRole("ADMIN") 
       .anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().logout() 
       .permitAll(); 
     http.exceptionHandling().accessDeniedPage("/403"); 
    } 

config에서 각 역할 페이지 조합을 지정해야합니까? 역할이 나중에 추가 될 수 있으므로 페이지와 역할을 동적으로 변경하는 방법이 있습니까?

답변

1

당신은 /resources/templates/home.ftl 또는 당신이 원하는대로 JSP됩니다 스프링 MVC 및 보안 주석

@Controller 
public class MainController extends BaseController { 

    @Secured("ROLE_ADMIN") 
    @RequestMapping("/") 
    String home(Model model) { 
     return "home"; 
    } 

}

홈 페이지를 사용할 수 있습니다. 사용자가 관리자가 아닌 경우 오류 페이지로 리디렉션됩니다.

수동으로 사용 권한을 확인하고 다른 페이지로 리디렉션을 보낼 수 있습니다.

P.S : 주석 작업을 보안하기 위해 @EnableGlobalMethodSecurity (securedEnabled = true) 을 Spring 부트 구성 클래스에 추가해야합니다.

@EnableAutoConfiguration 
@ComponentScan 
@Configuration 
@EnableGlobalMethodSecurity(securedEnabled = true) 
public class Application { 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(Application.class, args); 
    } 

} 새로운 역할 (어쩌면 로컬 관리자)가 일정 기간 이후에 생성되는 경우는 어떻게

+0

..? 그리고 주석 매개 변수는 동적으로 변경할 수 없다고 생각합니다. –

+0

페이지 롤 기록을 db에 저장하고 컨트롤러 메소드 사용자 권한을 수동으로 체크 인 할 수 있습니다. 리디렉션되지 않으면 –

+0

마음이 바뀌었고 이제 프런트 엔드에서 페이지에 대한 액세스 및 읽기/쓰기 권한을 제어하기로 결정했습니다. 스프링 측에서 기본 인증을받습니다. 이것은 내부 프로덕션 응용 프로그램입니다. 각도 데이터 세트에 권한 데이터 세트를 가져 오려면 어떻게해야합니까? 필터를 사용해야합니까? 내 경우에는 봄 보안을 사용하는 것이 좋은가요 ..? 이것을 할 수있는 대안이 있습니까 ..? –

관련 문제