Ich bin eine Webanwendung mit Spring Boot erstellen. Post-Anfragen können von einer Telefon-App gemacht werden, um Daten in Form von XML in die Cloud hochzuladen. Die Telefone, die Daten übertragen dürfen, müssen Firmentelefone sein. Die Methode zur Authentifizierung der API-Aufrufe besteht darin, die Android-ID des Telefons in einer Unternehmensdatenbank nachzuschlagen. Die Daten werden nur akzeptiert, wenn die Android-ID vorhanden ist. Die Idee ist, die Android-ID in die Kopfzeile von Anfragen einzubetten. Da es sich nicht um eine typische Authentifizierung handelt, wie kann ich es mit Spring Security implementieren? Oder wir brauchen nicht einmal Frühlingssicherheit. Entpacken Sie einfach die Android ID aus der Kopfzeile und suchen Sie in der Datenbank nach. Lehnen Sie die Anfrage ab, wenn es sich nicht um eine gültige ID handelt. Jeder Rat würde helfen.So implementieren Sie benutzerdefinierte Authentifizierung in Spring Boot-Anwendung
0
A
Antwort
0
Nichts hindert Sie daran, den Autorisierungsheader auf kreative Weise zu verwenden, d. H. Indem Sie die Android ID darin einbetten. Dann, um die Authentifizierung zu Ihrer Endpunkte hinzufügen, können Sie ein AOP Abfangjäger verwenden:
Geschützter Betrieb Marker-Schnittstelle:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ProtectedOperation {
}
Interceptor:
@Aspect
@Component
public class SecurityAspect {
private CorporateService corpService; // this is your custom service to check Android IDs
@Autowired
public SecurityAspect(CorporateService corpService) {
this.corpService = corpService;
}
@Around("@annotation(operation)")
public Object protectedOperationPermissionCheck(final ProceedingJoinPoint pjp, final ProtectedOperation operation) throws Throwable {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
String header = requestAttributes.getRequest().getHeader("Authorization");
String androidId = // get the ID from header - try not to use existing authorization header formats like Bearer, Negotiate etc. to avoid collision with other authentication systems
if (corpService.isAuthorized(androidId)) {
return pjp.proceed();
}
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.flushBuffer();
return null;
}
}
Achten Sie auf die spring-boot-starter-aop
Abhängigkeit hinzufügen zu Ihrer pom.xml, für @Aspect
Unterstützung
EDIT: Um einen Endpunkt zu schützen, kommentieren Sie die Endpunkt-Methode in Ihrem c Controller mit @ProtectedOperation
, und fügen Sie Ihre Spring Boot-Anwendung @EnableAspectJAutoProxy
Verwandte Themen
- 1. So implementieren Sie benutzerdefinierte Authentifizierung in ASP.NET MVC 5
- 2. Django: So implementieren Sie benutzerdefinierte Authentifizierung mit Master-Passwort
- 3. So implementieren Sie die Authentifizierung in WebService
- 4. So implementieren Sie benutzerdefinierte Spinner
- 5. Spring Security - Benutzerdefinierte LDAP-Authentifizierung
- 6. Implementieren der benutzerdefinierten Authentifizierung in Spring Security
- 7. Benutzerdefinierte Authentifizierung überschreibt Spring Security
- 8. Benutzerdefinierte Authentifizierung - Spring Boot 403 verboten Fehler
- 9. So implementieren Sie einen Spring Rest-Client
- 10. So erstellen Sie benutzerdefinierte DataSource in Spring Boot + Spring-Daten
- 11. So implementieren Sie IAsyncOperationWithProgress
- 12. Wie implementiert man benutzerdefinierte Authentifizierung in Spring Security 3?
- 13. So implementieren Sie Openid Connect und Spring Security
- 14. Spring Security und benutzerdefinierte externe Authentifizierung
- 15. Spring Security und benutzerdefinierte ws-Authentifizierung
- 16. So implementieren Sie die Seitennummerierung in Spring MVC 3
- 17. So erstellen Sie benutzerdefinierte Authentifizierung in Wso2-Identitätsserver 5.3
- 18. So implementieren Sie Windows-Authentifizierung mit IdentityServer 4
- 19. So implementieren Sie benutzerdefinierte Async-Validator in Angular2/4/5
- 20. So implementieren Sie benutzerdefinierte Schriftart in Xcode Spielplätze
- 21. So implementieren Sie eine benutzerdefinierte Fehlerseite in asp.net mvc
- 22. So implementieren Sie benutzerdefinierte Muster-Layout in log4j2
- 23. So implementieren Sie formularbasierte Authentifizierung ohne SSL/TLS
- 24. Spring Sicherheit REST api benutzerdefinierte HTTP-Basis-Authentifizierung
- 25. Wie implementieren Sie Token-Authentifizierung in Flask?
- 26. Spring OAuth2-Authentifizierung mit X.509-Zertifikat
- 27. So fügen Sie benutzerdefinierte Methode zu Spring Data JPA
- 28. So implementieren Sie Benutzerauthentifizierung in Phoenix
- 29. So binden Sie die OAuth-Authentifizierung mit der Spring-Sicherheit
- 30. Benutzerdefinierte PrinciplePermission-Authentifizierung