заставить org.springframework.security.oauth использовать com.fasterxml.jackson, а не org.codehouse.jackson - PullRequest
0 голосов
/ 23 июня 2018

У меня есть проект Spring, который использует org.springframework.security.oauth, spring-boot-starter-data-rest и spring-boot-starter-web.

Все работает хорошо, но я хочу исключить некоторые поля из объектов домена, используя аннотацию @JsonIgnore.Это не работаетЯ проверил: com.fasterxml.jackson.annotation.JsonIgnore и org.codehaus.jackson.annotate.JsonIgnore

My mvn dependency:tree показывает:

[INFO] +- org.springframework.boot:spring-boot-starter-data-rest:jar:1.5.9.RELEASE:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile

и

[INFO] org.springframework:na-punkty-data-rest:war:0.1.0
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.9.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.5.9.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:1.5.9.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.9.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.9.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.11:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
[INFO] |  +- org.hibernate:hibernate-validator:jar:5.3.6.Final:compile
[INFO] |  |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
[INFO] |  |  \- com.fasterxml:classmate:jar:1.3.4:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile

и

[INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.0.11.RELEASE:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.3.13.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:4.3.13.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:4.3.13.RELEASE:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:4.2.3.RELEASE:compile
[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- commons-codec:commons-codec:jar:1.10:compile
[INFO] |  \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |     \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile

Я не использую какие-либо классы из org.codehaus или com.fasterxml непосредственно в моем коде (я только пытаюсь использовать его с @JsonIgnore в одном месте).По моему мнению, я должен избавиться от удвоения реализации и заставить oAuth использовать com.fasterxml.Но я не уверен, что это хороший путь и как его достичь?

Я пытался собрать https://spring.io/guides/gs/accessing-data-rest/ и использовать @JsonIgnore, и он там работает, но mvn dependency:tree показывает только одну реализацию для Джексона Маппера (com.fasterxml).

Может кто-нибудьпомогите пожалуйста?

1 Ответ

0 голосов
/ 25 июня 2018

Добрый вечер,

Я нашел причину, по которой @JsonIgnore не работал. Это была опечатка :(

У меня было личное поле, начинающееся с заглавной буквы:

@JsonIgnore
private String Roles;

после изменения на

@JsonIgnore
private String roles;

это начало работать. Конечно, мне пришлось использовать правильную реализацию @JsonIgnore, в данном случае это была com.fasterxml.jackson.annotation.JsonIgnore

Извините за публикацию этого вопроса. Там все хорошо работает. Я был слепым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...