SecurityContextHolder.getContext().getAuthentication() always return 'anonymousUser'











up vote
1
down vote

favorite












I created Spring boot application with the following configuration:




  • Spring boot 2.1.0.RELEASE

  • OpenJdk 11


I have an AuditConfiguration class in my project that looks like:



@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
public class AuditConfiguration {

@Bean
public AuditorAware<String> auditorProvider() {
return new AuditorAwareImpl();
}

class AuditorAwareImpl implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Principal principal =
SecurityContextHolder.getContext().getAuthentication();
return Optional.of(principal.getName());
}
}
}


and SecurityContextHolder.getContext().getAuthentication() always returns anonymousUser.



However, the following code returns the correct user name.



@RestController
@RequestMapping("/history")
public class HistoryEndpoint {

@RequestMapping(value = "/username", method = RequestMethod.GET)
@ResponseBody
public String currentUserName(Principal principal) {
return principal.getName();
}
}


I need your help for resolving this issue.










share|improve this question









New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Try autowire principal object instead of getting it directly from security context holder and check if issue gone.
    – Kamil W.
    2 days ago










  • are you setting Authentication object into spring security context?
    – Raheela Aslam
    2 days ago










  • Please show your configuration files
    – shazin
    2 days ago















up vote
1
down vote

favorite












I created Spring boot application with the following configuration:




  • Spring boot 2.1.0.RELEASE

  • OpenJdk 11


I have an AuditConfiguration class in my project that looks like:



@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
public class AuditConfiguration {

@Bean
public AuditorAware<String> auditorProvider() {
return new AuditorAwareImpl();
}

class AuditorAwareImpl implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Principal principal =
SecurityContextHolder.getContext().getAuthentication();
return Optional.of(principal.getName());
}
}
}


and SecurityContextHolder.getContext().getAuthentication() always returns anonymousUser.



However, the following code returns the correct user name.



@RestController
@RequestMapping("/history")
public class HistoryEndpoint {

@RequestMapping(value = "/username", method = RequestMethod.GET)
@ResponseBody
public String currentUserName(Principal principal) {
return principal.getName();
}
}


I need your help for resolving this issue.










share|improve this question









New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Try autowire principal object instead of getting it directly from security context holder and check if issue gone.
    – Kamil W.
    2 days ago










  • are you setting Authentication object into spring security context?
    – Raheela Aslam
    2 days ago










  • Please show your configuration files
    – shazin
    2 days ago













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I created Spring boot application with the following configuration:




  • Spring boot 2.1.0.RELEASE

  • OpenJdk 11


I have an AuditConfiguration class in my project that looks like:



@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
public class AuditConfiguration {

@Bean
public AuditorAware<String> auditorProvider() {
return new AuditorAwareImpl();
}

class AuditorAwareImpl implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Principal principal =
SecurityContextHolder.getContext().getAuthentication();
return Optional.of(principal.getName());
}
}
}


and SecurityContextHolder.getContext().getAuthentication() always returns anonymousUser.



However, the following code returns the correct user name.



@RestController
@RequestMapping("/history")
public class HistoryEndpoint {

@RequestMapping(value = "/username", method = RequestMethod.GET)
@ResponseBody
public String currentUserName(Principal principal) {
return principal.getName();
}
}


I need your help for resolving this issue.










share|improve this question









New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I created Spring boot application with the following configuration:




  • Spring boot 2.1.0.RELEASE

  • OpenJdk 11


I have an AuditConfiguration class in my project that looks like:



@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
public class AuditConfiguration {

@Bean
public AuditorAware<String> auditorProvider() {
return new AuditorAwareImpl();
}

class AuditorAwareImpl implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Principal principal =
SecurityContextHolder.getContext().getAuthentication();
return Optional.of(principal.getName());
}
}
}


and SecurityContextHolder.getContext().getAuthentication() always returns anonymousUser.



However, the following code returns the correct user name.



@RestController
@RequestMapping("/history")
public class HistoryEndpoint {

@RequestMapping(value = "/username", method = RequestMethod.GET)
@ResponseBody
public String currentUserName(Principal principal) {
return principal.getName();
}
}


I need your help for resolving this issue.







spring spring-boot spring-security






share|improve this question









New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 2 days ago









shazin

14.8k23145




14.8k23145






New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 2 days ago









bhagya perera

62




62




New contributor




bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






bhagya perera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Try autowire principal object instead of getting it directly from security context holder and check if issue gone.
    – Kamil W.
    2 days ago










  • are you setting Authentication object into spring security context?
    – Raheela Aslam
    2 days ago










  • Please show your configuration files
    – shazin
    2 days ago


















  • Try autowire principal object instead of getting it directly from security context holder and check if issue gone.
    – Kamil W.
    2 days ago










  • are you setting Authentication object into spring security context?
    – Raheela Aslam
    2 days ago










  • Please show your configuration files
    – shazin
    2 days ago
















Try autowire principal object instead of getting it directly from security context holder and check if issue gone.
– Kamil W.
2 days ago




Try autowire principal object instead of getting it directly from security context holder and check if issue gone.
– Kamil W.
2 days ago












are you setting Authentication object into spring security context?
– Raheela Aslam
2 days ago




are you setting Authentication object into spring security context?
– Raheela Aslam
2 days ago












Please show your configuration files
– shazin
2 days ago




Please show your configuration files
– shazin
2 days ago

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






bhagya perera is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203519%2fsecuritycontextholder-getcontext-getauthentication-always-return-anonymousu%23new-answer', 'question_page');
}
);

Post as a guest





































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes








bhagya perera is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















bhagya perera is a new contributor. Be nice, and check out our Code of Conduct.













bhagya perera is a new contributor. Be nice, and check out our Code of Conduct.












bhagya perera is a new contributor. Be nice, and check out our Code of Conduct.















 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203519%2fsecuritycontextholder-getcontext-getauthentication-always-return-anonymousu%23new-answer', 'question_page');
}
);

Post as a guest




















































































Popular posts from this blog

Schultheiß

Liste der Kulturdenkmale in Wilsdruff

Android Play Services Check