Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Spring Boot, Hibernate und OAuth2 wie komme ich an den User?
ich finde ja die Kombinationen aus den 3 Technologien ziemlich cool,
allerdings stellt sich mir eine frage: wenn ich OAuth zur anmeldung verwende, wie greife ich danach darauf zu:
ein Beispiel:
ich möchte nun über Hibernate abfragen welche Projekte ein Benutzer sehen kann,
Hibernate nutzt für seine Querys Namanskonventionen z.b. findProjectsByUser()
natürlich könnte ich einen benutzernamen übergeben aber ich will ja den Aktuell angemeldeten Benutzer haben.
wie kann ich also die OAuth Anmeldung mit in Querys einfließen lassen?
ich hätte das ja gegoogelt aber irgendwie lässt sich das Google Schwer erklären
ja ich muss da noch viel lernen
aber bei dem Punkt war das Googlen etwas schwer ... weil ich nicht genau wuste wie ich das formulieren muss.
aktuell versuche ich noch rauszufinden wie man die Models in beziehung setzt
Danke euch für die Promte hilfe
So ich hatte in zwischen etwas zeit und wollte mich mal an die Umsetzung machen, leider musste ich feststellen das eure Beiden Versionen bei mir so nicht Funktionieren, in beiden Fällen ist es NULL
hier mal mein Code, ist nur ein testcontroller, er wird auch sauber aufgerufen und ich kann ihn auch debuggen, aber warum in beiden Fällen der User NULL ist weiss ich leider nicht, habt ihr noch eine Idee was ich versuchen könnte?
Java:
@RestController
@RequestMapping("/hello")
public class HelloController
{
private static final Logger logger = LoggerFactory.getLogger(HelloController.class);
@RequestMapping(method = RequestMethod.GET)
public String helloWorld(@AuthenticationPrincipal ApiUserModel user)
{
//
// @AuthenticationPrincipal ApiUserModel user
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userName;
userName = auth.getName();
logger.debug(userName);
return user.getLogin();
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String helloUser(@PathVariable String id)
{
return "";
}
}
okay ich muss mich da korregieren, aus irgendeinem Grund geht das GET auch ohne Token, also scheint hier was an der anmeldung wirklich nicht zu stimmen, ich muss jetzt nur mal rausfinden warum das Plötzlich so ist wie es ist
okay jetzt funktioniert es
kannst du mir vielleicht noch kurz erklären wie ich das jetzt in einem Query nutze?
kleines beispiel: https://www.java-forum.org/thema/spring-boot-jpa-models-verknuepfen-join.180371/
also ich will den Username in einem Join verwenden zusammen mit einem anderen Parameter
was mir an der stelle noch nicht klar ist wie ich das jetzt in den Funktionskopf bekomme:
Java:
@OneToMany(mappedBy = "mappingId.projectID")
private Set<ApiUserPermissionsModel> apiUserPermissions = new HashSet<ApiUserPermissionsModel>();
ich müsste jetzt das in die OneToMany Verknüpfung eingebettet bekommen.