Jhipster nuevos roles - se requiere la autenticación completa

ROBlackSnail:

Tengo un problema en el que no puedo acces cualquier URL mientras está conectado en una accont con una función personalizada definida.

Para crear los nuevos papeles para mi aplicación, añadí mis nuevas funciones en la AuthoritiesConstantsclase y en authorities.csv. Entonces me inserta manualmente mis nuevas funciones deseadas: ROLE_STUDENTy ROLE_PROFESORen mi h2-base de datos.

Entonces abrí una sesión en la cuenta de administrador y trató y tuvo éxito al crear un nuevo usuario con el ROLE_STUDENT. Entonces me conecté a esta nueva cuenta y trató de acceso http://localhost:9000/api/userspara obtener la lista completa de los usuarios. Tuve el siguiente error :

2020-03-19 10:59:05.687 DEBUG 13892 --- [ XNIO-1 task-15] base.aop.logging.LoggingAspect           : Enter: base.repository.CustomAuditEventRepository.add() with argument[s] = [AuditEvent [timestamp=2020-03-19T08:59:05.686Z, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={details=org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null, type=org.springframework.security.access.AccessDeniedException, message=Access is denied}]]
2020-03-19 10:59:05.691 DEBUG 13892 --- [ XNIO-1 task-15] base.aop.logging.LoggingAspect           : Exit: base.repository.CustomAuditEventRepository.add() with result = null
2020-03-19 10:59:05.693  WARN 13892 --- [ XNIO-1 task-15] o.z.problem.spring.common.AdviceTraits   : Unauthorized: Full authentication is required to access this resource
2020-03-19 10:59:05.695  WARN 13892 --- [ XNIO-1 task-15] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.authentication.InsufficientAuthenticationException: Full authentication is required to access this resource]

En mi SecurityConfigurationclase, esta url cae bajo .antMatchers("/api/**").authenticated(). Así que tenía que ser capaz de acceder a él desde cualquier cuenta, siempre y cuando estoy conectado.

Para mi desgracia, parece que no puedo acceder a cualquier URL, además de la página de inicio, de esta cuenta. He comprobado manualmente mi base de datos para ver si se ha creado el usuario y tiene la función correcta. Todo está bien allí. Alguien podría ayudarme a resolver esto ?

vicpermir:

Usted tiene que abrir las rutas a los nuevos papeles también, esto se hace en el lado del cliente. Esto es más o menos cómo se ve si se utiliza angular.

El componente de la casa está abierta a todos como se puede ver en el archivo home.route.ts.

export const HOME_ROUTE: Route = {
  path: '',
  component: HomeComponent,
  data: {
    authorities: [], // <- Empty, so anyone can access the home
    pageTitle: 'home.title'
  }
};

Por otro lado, si desea conceder acceso a un nuevo papel en un componente regular, tendrá que añadirlo a la matriz autoridades válida en su [entity-name].route.ts.

export const fooRoute: Routes = [
  {
    ...
    data: {
      authorities: ['ROLE_STUDENT', 'ROLE_PROFESOR'],
      ...
    },
...

Eso le da acceso a cualquier usuario que tenga ya sea ROLE_STUDENTo ROLE_PROFESOR, pero no a los usuarios regulares (que sólo tienen ROLE_USER). Esto fue sólo un ejemplo.

En cualquier caso, si he entendido bien su pregunta, que estaba tratando de acceder a un api/...mapeo directamente en su navegador. Eso no es una buena idea y es bueno que falla ya que el cliente suele añadir cosas a la mayoría de las peticiones para que se manipulan y validados por el servidor ( XSRF, auth token, ...).

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=318507&siteId=1
Recomendado
Clasificación