Polish Span and Meter Names
Closes gh-12156
This commit is contained in:
@@ -43,6 +43,21 @@ public final class AuthenticationObservationConvention
|
||||
return OBSERVATION_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContextualName(AuthenticationObservationContext context) {
|
||||
if (context.getAuthenticationRequest() != null) {
|
||||
String authenticationType = context.getAuthenticationRequest().getClass().getSimpleName();
|
||||
if (authenticationType.endsWith("Token")) {
|
||||
authenticationType = authenticationType.substring(0, authenticationType.lastIndexOf("Token"));
|
||||
}
|
||||
if (authenticationType.endsWith("Authentication")) {
|
||||
authenticationType = authenticationType.substring(0, authenticationType.lastIndexOf("Authentication"));
|
||||
}
|
||||
return "authenticate " + authenticationType.toLowerCase();
|
||||
}
|
||||
return "authenticate";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
||||
@@ -19,6 +19,9 @@ package org.springframework.security.authorization;
|
||||
import io.micrometer.common.KeyValues;
|
||||
import io.micrometer.observation.Observation;
|
||||
import io.micrometer.observation.ObservationConvention;
|
||||
import org.aopalliance.intercept.MethodInvocation;
|
||||
|
||||
import org.springframework.security.authorization.method.MethodInvocationResult;
|
||||
|
||||
/**
|
||||
* An {@link ObservationConvention} for translating authorizations into {@link KeyValues}.
|
||||
@@ -39,14 +42,19 @@ public final class AuthorizationObservationConvention
|
||||
return OBSERVATION_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContextualName(AuthorizationObservationContext<?> context) {
|
||||
return "authorize " + getObjectType(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public KeyValues getLowCardinalityKeyValues(AuthorizationObservationContext<?> context) {
|
||||
return KeyValues.of("authentication.type", getAuthenticationType(context))
|
||||
.and("object.type", getObjectType(context))
|
||||
.and("authorization.decision", getAuthorizationDecision(context));
|
||||
return KeyValues.of("spring.security.authentication.type", getAuthenticationType(context))
|
||||
.and("spring.security.object", getObjectType(context))
|
||||
.and("spring.security.authorization.decision", getAuthorizationDecision(context));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -54,8 +62,8 @@ public final class AuthorizationObservationConvention
|
||||
*/
|
||||
@Override
|
||||
public KeyValues getHighCardinalityKeyValues(AuthorizationObservationContext<?> context) {
|
||||
return KeyValues.of("authentication.authorities", getAuthorities(context)).and("authorization.decision.details",
|
||||
getDecisionDetails(context));
|
||||
return KeyValues.of("spring.security.authentication.authorities", getAuthorities(context))
|
||||
.and("spring.security.authorization.decision.details", getDecisionDetails(context));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -74,7 +82,20 @@ public final class AuthorizationObservationConvention
|
||||
if (context.getObject() == null) {
|
||||
return "unknown";
|
||||
}
|
||||
return context.getObject().getClass().getSimpleName();
|
||||
if (context.getObject() instanceof MethodInvocation) {
|
||||
return "method";
|
||||
}
|
||||
if (context.getObject() instanceof MethodInvocationResult) {
|
||||
return "method";
|
||||
}
|
||||
String className = context.getObject().getClass().getSimpleName();
|
||||
if (className.contains("Request")) {
|
||||
return "request";
|
||||
}
|
||||
if (className.contains("Message")) {
|
||||
return "message";
|
||||
}
|
||||
return className;
|
||||
}
|
||||
|
||||
private String getAuthorizationDecision(AuthorizationObservationContext<?> context) {
|
||||
|
||||
@@ -33,11 +33,11 @@ import org.springframework.security.core.Authentication;
|
||||
*/
|
||||
public final class ObservationSecurityContextChangedListener implements SecurityContextChangedListener {
|
||||
|
||||
static final String SECURITY_CONTEXT_CREATED = "security.context.created";
|
||||
static final String SECURITY_CONTEXT_CREATED = "spring.security.context.created";
|
||||
|
||||
static final String SECURITY_CONTEXT_CHANGED = "security.context.changed";
|
||||
static final String SECURITY_CONTEXT_CHANGED = "spring.security.context.changed";
|
||||
|
||||
static final String SECURITY_CONTEXT_CLEARED = "security.context.cleared";
|
||||
static final String SECURITY_CONTEXT_CLEARED = "spring.security.context.cleared";
|
||||
|
||||
private final ObservationRegistry registry;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user