I Spring Security Expression in meiner Anwendung Frühlings-Controller implementiert haben:Frühling Sicherheit ohne Form Login
@Controller
@RequestMapping("init")
public class InitController {
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/", method = RequestMethod.GET)
public @ResponseBody String home(){
return "This is the init page";
}
}
Mit dieser Sicherheitskonfiguration:
<http auto-config="true" create-session="stateless" use-expressions="true">
<intercept-url pattern="/_ah*" access="permitAll" />
<intercept-url pattern="/init/*" access="hasRole('ROLE_ADMIN')"/>
<intercept-url pattern="/init*" access="hasRole('ROLE_ADMIN')"/>
</http>
Wenn diese Ressource zugegriffen wird, die die Standard-Frühlings-Login-Formular angezeigt wird (http://localhost:8888/spring_security_login
), aber ich möchte nicht, dass dies passiert und ich möchte nur die Anmeldeinformationen in den Anfrage-Header wie "x-Autorisierung-Schlüssel" oder was auch immer das Szenario passt.
Was ist die mögliche Lösung dafür?
- Ist es ein gutes haben, nur die x-berechtigungs Schlüssel in der Anfrage sein
- Wenn ja, wie es mit dem Spring-Sicherheitsmechanismus passt, das ist, wie, dass es passt mit dem „hasRole "Ausdruck
- Es ist wichtig, das die mein Web-Service staatenlos ist, und jede Anfrage wird
- Schließlich authentifiziert, wie viel mit Frühlings-Sicherheit zu tun, ohne mit dem Spring-Login-Formular beschäftigen
Kopf