bu yazımda oluşturulan monolitik JHipster projesinin ekranlarının public erişime nasıl açılacağını paylaşacağım.
ilk olarak bir önceki yazımda paylaştığım üzere student adında bir entity oluşturun. Varsayınlan olarak bu student entity'sine ait ekranlara erişebilmek için sisteme login olmak gerekmektedir. Çünkü hem backend tarafında hemde Frontend tarafında erişim kontrolü yapılıp eğer kullanıcı sisteme login olmamışsa bu ekranlar kullanıcıya gösterilmemektedir.
Ancak JHipster ile proje geliştirirken register sayfası gibi login olmadan da erişilebilecek sayfalar yapma ihtiyacınız doğabilir. Dolayısıyla böyle bir ihtiyaç doğması durumunda projede aşağıdaki değişiklikleri yaparak erkanları public erişime açabilirsiniz.
Projede forntend ve backend tarafı ayrı olduğu için hem Backend ten hemede Frontend tarafında gereken tanımlamaları yapmanız gerekmektedir.
ilk olarak Backend tarafı için erişim tanımlamalarının yapıldığı SecurityConfiguration#configure(HttpSecurity) methoduna giderek .antMatchers("/api/register").permitAll() satırının altına aşağıdaki satırları ekleyin.
.authorizeRequests() .antMatchers("/api/authenticate").permitAll() .antMatchers("/api/register").permitAll() .antMatchers("/api/students").permitAll() .antMatchers("/api/students/*").permitAll() .antMatchers("/api/activate").permitAll() .antMatchers("/api/account/reset-password/init").permitAll() .antMatchers("/api/account/reset-password/finish").permitAll() .antMatchers("/api/**").authenticated() .antMatchers("/management/health").permitAll() .antMatchers("/management/info").permitAll() .antMatchers("/management/prometheus").permitAll() .antMatchers("/management/**").hasAuthority(AuthoritiesConstants.ADMIN) |
src/main/webapp/app/entities/student/student.route.ts
Yine student.route.ts dosyası içinde authorities alanlarının karşılığını boş array olarak set edin (authorities: []).
son hali aşağıdaki şekilde olmalıdır
export const studentRoute: Routes = [ { path: '', component: StudentComponent, data: { authorities: [], pageTitle: 'demoHipster.student.home.title', }, }, { path: ':id/view', component: StudentDetailComponent, resolve: { student: StudentResolve, }, data: { authorities: [], pageTitle: 'demoHipster.student.home.title', }, }, { path: 'new', component: StudentUpdateComponent, resolve: { student: StudentResolve, }, data: { authorities: [], pageTitle: 'demoHipster.student.home.title', }, }, { path: ':id/edit', component: StudentUpdateComponent, resolve: { student: StudentResolve, }, data: { authorities: [], pageTitle: 'demoHipster.student.home.title', }, }, |
kaynak:
https://github.com/Tonterias/JhipsterPress
https://www.jhipster.tech/creating-an-entity/
Hiç yorum yok:
Yorum Gönder