[英]Spring Oauth2 JdbcTokenStore Oracle Database
i'm trying convert the jdbctoken store schema here https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/test/resources/schema.sql 我正在尝试在此处转换jdbctoken存储架构https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/test/resources/schema.sql
to 至
CREATE TABLE EISBIT.OAUTH_ACCESS_TOKEN
(
TOKEN_ID VARCHAR2(256 BYTE),
TOKEN CLOB,
AUTHENTICATION_ID VARCHAR2(256 BYTE),
USER_NAME VARCHAR2(256 BYTE),
CLIENT_ID VARCHAR2(256 BYTE),
AUTHENTICATION CLOB,
REFRESH_TOKEN VARCHAR2(256 BYTE)
)
ths 这
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.tokenStore(tokenStore())
.authenticationManager(this.authenticationManager);
}
but i get this exception when try a 但是当尝试一个
2015-07-03 14:34:01.300 WARN 10952 --- [pr-8080-exec-13] ossoptoken.store.JdbcTokenStore : Failed to deserialize access token for b14fa3b1-5a5a-4d0c-9112-416997c2dc83 java.lang.IllegalArgumentException: java.io.StreamCorruptedException: invalid stream header: 00540001 at org.springframework.security.oauth2.common.util.SerializationUtils.deserialize(SerializationUtils.java:40) at org.springframework.security.oauth2.provider.token.store.JdbcTokenStore.deserializeAccessToken(JdbcTokenStore.java:397) at org.springframework.security.oauth2.provider.token.store.JdbcTokenStore$2.mapRow(JdbcTokenStore.java:162) at org.springframework.security.oauth2.provider.token.store.JdbcTokenStore$2.mapRow(JdbcTokenStore.java:1) at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93) at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60) at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:708) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:695) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:727) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:737) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:811) at org.springframework.security.oauth2.provider.token.store.JdbcTokenStore.readAccessToken(JdbcTokenStore.java:160)
error when try to read the tokenstore :(.. 尝试读取令牌库时出错:(。
modify CLOB to BLOB 将CLOB修改为BLOB
CREATE TABLE EISBIT.OAUTH_ACCESS_TOKEN
(
TOKEN_ID VARCHAR2(256 BYTE),
TOKEN BLOB,
AUTHENTICATION_ID VARCHAR2(256 BYTE),
USER_NAME VARCHAR2(256 BYTE),
CLIENT_ID VARCHAR2(256 BYTE),
AUTHENTICATION BLOB,
REFRESH_TOKEN VARCHAR2(256 BYTE)
)
You have to map this to RAW or LONG RAW datatype in Oracle . 您必须将此映射到Oracle中的RAW或LONG RAW数据类型。 We faced this exception and had to change the following fields in OAUTH tables .
我们遇到了此异常,因此不得不更改OAUTH表中的以下字段。
OAUTH_ACCESS_TOKEN OAUTH_ACCESS_TOKEN
TOKEN RAW 令牌原始
AUTHENTICATION LONG RAW 长时间认证
REFRESH_TOKEN RAW REFRESH_TOKEN RAW
OAUTH_REFRESH_TOKEN OAUTH_REFRESH_TOKEN
TOKEN RAW 令牌原始
AUTHENTICATION LONG RAW 长时间认证
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.