jumpserver通过cas配置sso,角色名长度存在限制

jumpsever版本:社区版V3.10.17
问题:再通过cas配置sso的过程中遇到报错"server error occur, contact administrator",查看jumpserver.log时,发现报错信息是数据库中role属性超长,报错详情“django.db.utils.DataError: (1406, “Data too long for column ‘role’ at row 1”)”

经过实测发现,是sso用户源那边有一个属性名为角色,这个角色属性的长度超过10就会遇到此报错,如果角色名长度在10及以下则可以正常登录。

按我理解是修改jumpserver附带的数据库中的某个表格的属性就可以,但是没有办法找到jumpserver附带的数据库如何进行编辑。

如何解决该问题?

下附jumpserver.log中的报错信息原文:
2025-04-08 18:05:27 [ERRO] Internal Server Error: /core/auth/cas/login/
Traceback (most recent call last):
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/utils.py”, line 89, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/mysql/base.py”, line 75, in execute
return self.cursor.execute(query, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 179, in execute
res = self._query(mogrified_query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 330, in _query
db.query(q)
File “/opt/py3/lib/python3.11/site-packages/MySQLdb/connections.py”, line 255, in query
_mysql.connection.query(self, query)
MySQLdb.DataError: (1406, “Data too long for column ‘role’ at row 1”)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/opt/py3/lib/python3.11/site-packages/asgiref/sync.py”, line 518, in thread_handler
raise exc_info[1]
File “/opt/py3/lib/python3.11/site-packages/django/core/handlers/exception.py”, line 43, in inner
response = await get_response(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/asgiref/sync.py”, line 518, in thread_handler
raise exc_info[1]
File “/opt/py3/lib/python3.11/site-packages/django/core/handlers/base.py”, line 253, in _get_response_async
response = await wrapped_callback(
^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/asgiref/sync.py”, line 468, in call
ret = await asyncio.shield(exec_coro)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/asgiref/current_thread_executor.py”, line 40, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/asgiref/sync.py”, line 522, in thread_handler
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/contextlib.py”, line 81, in inner
return func(*args, **kwds)
^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/views/generic/base.py”, line 103, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/utils/decorators.py”, line 46, in _wrapper
return bound_method(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/views/decorators/csrf.py”, line 55, in wrapped_view
return view_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django_cas_ng/views.py”, line 72, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/views/generic/base.py”, line 142, in dispatch
return handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/jumpserver/apps/authentication/backends/cas/views.py”, line 11, in get
return super().get(request)
^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django_cas_ng/views.py”, line 128, in get
user = authenticate(ticket=ticket,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/jumpserver/apps/authentication/mixins.py”, line 72, in authenticate
user = backend.authenticate(request, **credentials)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django_cas_ng/backends.py”, line 135, in authenticate
user.save()
File “/opt/jumpserver/apps/users/models/user.py”, line 976, in save
return super().save(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/contrib/auth/base_user.py”, line 69, in save
super().save(*args, **kwargs)
File “/opt/py3/lib/python3.11/site-packages/django/db/models/base.py”, line 812, in save
self.save_base(
File “/opt/py3/lib/python3.11/site-packages/django/db/models/base.py”, line 863, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/models/base.py”, line 976, in _save_table
updated = self._do_update(
^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/models/base.py”, line 1040, in _do_update
return filtered._update(values) > 0
^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/models/query.py”, line 1216, in _update
return query.get_compiler(self.db).execute_sql(CURSOR)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/models/sql/compiler.py”, line 1822, in execute_sql
cursor = super().execute_sql(result_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/models/sql/compiler.py”, line 1398, in execute_sql
cursor.execute(sql, params)
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/utils.py”, line 67, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/utils.py”, line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/utils.py”, line 84, in _execute
with self.db.wrap_database_errors:
File “/opt/py3/lib/python3.11/site-packages/django/db/utils.py”, line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/utils.py”, line 89, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/django/db/backends/mysql/base.py”, line 75, in execute
return self.cursor.execute(query, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 179, in execute
res = self._query(mogrified_query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 330, in _query
db.query(q)
File “/opt/py3/lib/python3.11/site-packages/MySQLdb/connections.py”, line 255, in query
_mysql.connection.query(self, query)
django.db.utils.DataError: (1406, “Data too long for column ‘role’ at row 1”)