parent
820ea91190
commit
ce001858ce
@ -0,0 +1 @@
|
||||
[{"baseUrl":"","className":"WebLoginController","description":"WebLoginController","docFileName":"com_dsideal_sso_Controller_WebLoginController.html","generateDocs":true,"packageName":"com.dsideal.sso.Controller","requestNodes":[{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#index","deprecated":false,"description":"跳转到登录页","header":[],"method":["GET","POST"],"methodName":"index","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//index"},{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#login","deprecated":false,"description":"登录跳转","header":[],"method":["GET","POST"],"methodName":"login","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//login"},{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#doLogin","deprecated":false,"description":"WEB登录","header":[],"method":["GET","POST"],"methodName":"doLogin","paramNodes":[{"description":"用户名","jsonBody":false,"name":"username","required":false,"type":"string"},{"description":"密码","jsonBody":false,"name":"password","required":false,"type":"string"},{"description":"验证码","jsonBody":false,"name":"captcha","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//doLogin"},{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#logout","deprecated":false,"description":"WEB登出","header":[],"method":["GET","POST"],"methodName":"logout","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//logout"},{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#getDefaultRedirectUrl","deprecated":false,"description":"获取默认RedirectUrl地址","header":[],"method":["GET","POST"],"methodName":"getDefaultRedirectUrl","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//getDefaultRedirectUrl"},{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#getCaptcha","deprecated":false,"description":"获取验证码","header":[],"method":["GET","POST"],"methodName":"getCaptcha","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//getCaptcha"},{"changeFlag":0,"codeFileUrl":"com_dsideal_sso_Controller_WebLoginController.html#loginCheck","deprecated":false,"description":"功能:登录检查","header":[],"method":["GET","POST"],"methodName":"loginCheck","paramNodes":[{"description":"会话id","jsonBody":false,"name":"sessionId","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"//loginCheck"}],"srcFileName":"D:\\dsWork\\QingLongSso\\src\\main\\java\\com\\dsideal\\sso\\Controller\\WebLoginController.java"}]
|
@ -0,0 +1,93 @@
|
||||
{
|
||||
"item": [
|
||||
{
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"url": {
|
||||
"query": [],
|
||||
"raw": "{{domain}}//index"
|
||||
}
|
||||
},
|
||||
"name": "跳转到登录页"
|
||||
},
|
||||
{
|
||||
"request": {
|
||||
"url": {
|
||||
"query": [],
|
||||
"raw": "{{domain}}//login"
|
||||
}
|
||||
},
|
||||
"name": "登录跳转"
|
||||
},
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"url": {
|
||||
"query": [
|
||||
{
|
||||
"description": "用户名",
|
||||
"value": "",
|
||||
"key": "username"
|
||||
},
|
||||
{
|
||||
"description": "密码",
|
||||
"value": "",
|
||||
"key": "password"
|
||||
},
|
||||
{
|
||||
"description": "验证码",
|
||||
"value": "",
|
||||
"key": "captcha"
|
||||
}
|
||||
],
|
||||
"raw": "{{domain}}//doLogin"
|
||||
}
|
||||
},
|
||||
"name": "WEB登录"
|
||||
},
|
||||
{
|
||||
"request": {
|
||||
"url": {
|
||||
"query": [],
|
||||
"raw": "{{domain}}//logout"
|
||||
}
|
||||
},
|
||||
"name": "WEB登出"
|
||||
},
|
||||
{
|
||||
"request": {
|
||||
"url": {
|
||||
"query": [],
|
||||
"raw": "{{domain}}//getDefaultRedirectUrl"
|
||||
}
|
||||
},
|
||||
"name": "获取默认RedirectUrl地址"
|
||||
},
|
||||
{
|
||||
"request": {
|
||||
"url": {
|
||||
"query": [],
|
||||
"raw": "{{domain}}//getCaptcha"
|
||||
}
|
||||
},
|
||||
"name": "获取验证码"
|
||||
},
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"url": {
|
||||
"query": [
|
||||
{
|
||||
"description": "会话id",
|
||||
"value": "",
|
||||
"key": "sessionId"
|
||||
}
|
||||
],
|
||||
"raw": "{{domain}}//loginCheck"
|
||||
}
|
||||
},
|
||||
"name": "功能:登录检查"
|
||||
}
|
||||
],
|
||||
"name": "WebLoginController"
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
12月 17, 2024 11:27:41 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: find java src paths: [D:\dsWork\QingLongSso\src\main\java\]
|
||||
12月 17, 2024 11:27:41 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: project type not set, try to figure out...
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: start find controllers in path : D:\dsWork\QingLongSso\src\main\java\
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: Jfinal config file path : D:\dsWork\QingLongSso\src\main\java\com\dsideal\Start.java
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: start to parse controller file : WebLoginController.java
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: success to parse controller file : WebLoginController.java
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: start to parse controller file : CommomController.java
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: generate api docs start...
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: start to generate docs for controller file : D:\dsWork\QingLongSso\src\main\java\com\dsideal\sso\Controller\WebLoginController.java
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: success to generate docs for controller file : D:\dsWork\QingLongSso\src\main\java\com\dsideal\sso\Controller\WebLoginController.java
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: generate index start !!!
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: generate index done !!!
|
||||
12月 17, 2024 11:27:42 上午 io.github.yedaxia.apidocs.LogUtils info
|
||||
信息: info: generate api docs done !!!
|
@ -0,0 +1,257 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>WebLoginController</title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/google-code-prettify@1.0.5/bin/prettify.min.css">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body onload="PR.prettyPrint()">
|
||||
<nav class="navbar">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="index.html">
|
||||
QingLongSso
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="https://github.com/YeDaxia/JApiDocs" target="_blank">GitHub</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">v1.0<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="book with-summary">
|
||||
<div class="book-summary">
|
||||
<div class="search-box form-group">
|
||||
<input type="text" class="form-control" id="inputSearch" placeholder="搜索接口">
|
||||
<span class="glyphicon glyphicon-search form-control-feedback" aria-hidden="true"></span>
|
||||
</div>
|
||||
<div id="accordion" class="catalog">
|
||||
<div class="panel">
|
||||
<div id="heading0" data-parent="#accordion" class="catalog-title" data-toggle="collapse"
|
||||
aria-expanded="true" data-target="#collapse0" aria-controls="collapse0">
|
||||
<i class="glyphicon glyphicon-align-justify"></i> WebLoginController
|
||||
</div>
|
||||
<div id="collapse0" class="collapse in " aria-labelledby="heading0">
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#index">
|
||||
跳转到登录页
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#login">
|
||||
登录跳转
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#doLogin">
|
||||
WEB登录
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#logout">
|
||||
WEB登出
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#getDefaultRedirectUrl">
|
||||
获取默认RedirectUrl地址
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#getCaptcha">
|
||||
获取验证码
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#loginCheck">
|
||||
功能:登录检查
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div> </div>
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
<a class="header-menu toggle-catalog" href="javascript:void(0)"><i
|
||||
class="glyphicon glyphicon-align-justify"></i> 目录</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-wrapper">
|
||||
<div class="page-inner">
|
||||
<div class="action-list">
|
||||
<div class="action-item">
|
||||
<h2 id="index"><a href="#">跳转到登录页 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//index</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="action-item">
|
||||
<h2 id="login"><a href="#">登录跳转 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//login</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="action-item">
|
||||
<h2 id="doLogin"><a href="#">WEB登录 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//doLogin</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>请求参数</strong> <span class="badge">application/x-www-form-urlencoded</span></p>
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<th>参数名</th>
|
||||
<th>类型</th>
|
||||
<th>必须</th>
|
||||
<th>描述</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>username</td>
|
||||
<td>string</td>
|
||||
<td>否</td>
|
||||
<td>用户名</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>password</td>
|
||||
<td>string</td>
|
||||
<td>否</td>
|
||||
<td>密码</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>captcha</td>
|
||||
<td>string</td>
|
||||
<td>否</td>
|
||||
<td>验证码</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="action-item">
|
||||
<h2 id="logout"><a href="#">WEB登出 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//logout</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="action-item">
|
||||
<h2 id="getDefaultRedirectUrl"><a href="#">获取默认RedirectUrl地址 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//getDefaultRedirectUrl</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="action-item">
|
||||
<h2 id="getCaptcha"><a href="#">获取验证码 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//getCaptcha</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="action-item">
|
||||
<h2 id="loginCheck"><a href="#">功能:登录检查 </a></h2>
|
||||
<p><strong>请求URL</strong></p>
|
||||
<p>
|
||||
<code>//loginCheck</code>
|
||||
<span class="label label-default">GET</span>
|
||||
<span class="label label-default">POST</span>
|
||||
</p>
|
||||
<p><strong>请求参数</strong> <span class="badge">application/x-www-form-urlencoded</span></p>
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<th>参数名</th>
|
||||
<th>类型</th>
|
||||
<th>必须</th>
|
||||
<th>描述</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>sessionId</td>
|
||||
<td>string</td>
|
||||
<td>否</td>
|
||||
<td>会话id</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><strong>返回结果</strong></p>
|
||||
<pre class="prettyprint lang-json">{}</pre>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/autocomplete.js/0/autocomplete.jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/google-code-prettify@1.0.5/bin/prettify.min.js"></script>
|
||||
<script>
|
||||
|
||||
var search_source_data = [
|
||||
{name: 'WebLoginController.跳转到登录页', url: 'com_dsideal_sso_Controller_WebLoginController.html#index'},
|
||||
{name: 'WebLoginController.登录跳转', url: 'com_dsideal_sso_Controller_WebLoginController.html#login'},
|
||||
{name: 'WebLoginController.WEB登录', url: 'com_dsideal_sso_Controller_WebLoginController.html#doLogin'},
|
||||
{name: 'WebLoginController.WEB登出', url: 'com_dsideal_sso_Controller_WebLoginController.html#logout'},
|
||||
{name: 'WebLoginController.获取默认RedirectUrl地址', url: 'com_dsideal_sso_Controller_WebLoginController.html#getDefaultRedirectUrl'},
|
||||
{name: 'WebLoginController.获取验证码', url: 'com_dsideal_sso_Controller_WebLoginController.html#getCaptcha'},
|
||||
{name: 'WebLoginController.功能:登录检查', url: 'com_dsideal_sso_Controller_WebLoginController.html#loginCheck'},
|
||||
];
|
||||
|
||||
|
||||
|
||||
$('.toggle-catalog').click(function () {
|
||||
$('.book').toggleClass('with-summary');
|
||||
});
|
||||
|
||||
$('#inputSearch').autocomplete({hint: false}, [
|
||||
{
|
||||
source: function (query, callback) {
|
||||
var result = [];
|
||||
for(var i = 0; i !== search_source_data.length; i++){
|
||||
if(search_source_data[i].name.indexOf(query) !== -1){
|
||||
result.push(search_source_data[i]);
|
||||
}
|
||||
}
|
||||
callback(result);
|
||||
},
|
||||
displayKey: 'name',
|
||||
templates: {
|
||||
suggestion: function (suggestion) {
|
||||
return suggestion.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
]).on('autocomplete:selected', function (event, suggestion, dataset, context) {
|
||||
self.location = suggestion.url;
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>QingLongSsoAPI Documentation</title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/google-code-prettify@1.0.5/bin/prettify.min.css">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body onload="PR.prettyPrint()">
|
||||
<nav class="navbar">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="index.html">
|
||||
QingLongSso
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="https://github.com/YeDaxia/JApiDocs" target="_blank">GitHub</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">v1.0<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="book with-summary">
|
||||
<div class="book-summary">
|
||||
<div class="search-box form-group">
|
||||
<input type="text" class="form-control" id="inputSearch" placeholder="搜索接口">
|
||||
<span class="glyphicon glyphicon-search form-control-feedback" aria-hidden="true"></span>
|
||||
</div>
|
||||
<div id="accordion" class="catalog">
|
||||
<div class="panel">
|
||||
<div id="heading0" data-parent="#accordion" class="catalog-title" data-toggle="collapse"
|
||||
aria-expanded="true" data-target="#collapse0" aria-controls="collapse0">
|
||||
<i class="glyphicon glyphicon-align-justify"></i> WebLoginController
|
||||
</div>
|
||||
<div id="collapse0" class="collapse in " aria-labelledby="heading0">
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#index">
|
||||
跳转到登录页
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#login">
|
||||
登录跳转
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#doLogin">
|
||||
WEB登录
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#logout">
|
||||
WEB登出
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#getDefaultRedirectUrl">
|
||||
获取默认RedirectUrl地址
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#getCaptcha">
|
||||
获取验证码
|
||||
</a>
|
||||
<a class="catalog-item" href="com_dsideal_sso_Controller_WebLoginController.html#loginCheck">
|
||||
功能:登录检查
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div> </div>
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
<a class="header-menu toggle-catalog" href="javascript:void(0)"><i
|
||||
class="glyphicon glyphicon-align-justify"></i> 目录</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-wrapper">
|
||||
<div class="page-inner">
|
||||
<div class="main-content">
|
||||
<img src="http://static.nowait.xin/pic/japidocs-logo.png" width="200" height="200">
|
||||
<h4 style="margin: 20px">本文档由JApiDocs生成</h4>
|
||||
<div class="list-group" style="min-width: 200px">
|
||||
<a href="com_dsideal_sso_Controller_WebLoginController.html" class="list-group-item">WebLoginController</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/autocomplete.js/0/autocomplete.jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/google-code-prettify@1.0.5/bin/prettify.min.js"></script>
|
||||
<script>
|
||||
|
||||
var search_source_data = [
|
||||
{name: 'WebLoginController.跳转到登录页', url: 'com_dsideal_sso_Controller_WebLoginController.html#index'},
|
||||
{name: 'WebLoginController.登录跳转', url: 'com_dsideal_sso_Controller_WebLoginController.html#login'},
|
||||
{name: 'WebLoginController.WEB登录', url: 'com_dsideal_sso_Controller_WebLoginController.html#doLogin'},
|
||||
{name: 'WebLoginController.WEB登出', url: 'com_dsideal_sso_Controller_WebLoginController.html#logout'},
|
||||
{name: 'WebLoginController.获取默认RedirectUrl地址', url: 'com_dsideal_sso_Controller_WebLoginController.html#getDefaultRedirectUrl'},
|
||||
{name: 'WebLoginController.获取验证码', url: 'com_dsideal_sso_Controller_WebLoginController.html#getCaptcha'},
|
||||
{name: 'WebLoginController.功能:登录检查', url: 'com_dsideal_sso_Controller_WebLoginController.html#loginCheck'},
|
||||
];
|
||||
|
||||
|
||||
$('.toggle-catalog').click(function () {
|
||||
$('.book').toggleClass('with-summary');
|
||||
});
|
||||
|
||||
$('#inputSearch').autocomplete({hint: false}, [
|
||||
{
|
||||
source: function (query, callback) {
|
||||
var result = [];
|
||||
for(var i = 0; i !== search_source_data.length; i++){
|
||||
if(search_source_data[i].name.indexOf(query) !== -1){
|
||||
result.push(search_source_data[i]);
|
||||
}
|
||||
}
|
||||
callback(result);
|
||||
},
|
||||
displayKey: 'name',
|
||||
templates: {
|
||||
suggestion: function (suggestion) {
|
||||
return suggestion.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
]).on('autocomplete:selected', function (event, suggestion, dataset, context) {
|
||||
self.location = suggestion.url;
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,300 @@
|
||||
body, html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.book{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.book.with-summary .book-summary {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.book-summary {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -300px;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
overflow-y: auto;
|
||||
width: 300px;
|
||||
color: #364149;
|
||||
background: #fafafa;
|
||||
border-right: 1px solid rgba(0,0,0,.07);
|
||||
-webkit-transition: left 250ms ease;
|
||||
-moz-transition: left 250ms ease;
|
||||
-o-transition: left 250ms ease;
|
||||
transition: left 250ms ease;
|
||||
}
|
||||
|
||||
.book-body {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
overflow-y: auto;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
-webkit-transition: left 250ms ease;
|
||||
-moz-transition: left 250ms ease;
|
||||
-o-transition: left 250ms ease;
|
||||
transition: left 250ms ease;
|
||||
}
|
||||
|
||||
.book-body .body-inner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
overflow-y: auto;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.book-header {
|
||||
overflow: visible;
|
||||
height: 50px;
|
||||
z-index: 2;
|
||||
font-size: .85em;
|
||||
color: #7e888b;
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
.book-header a.header-menu{
|
||||
font-size: 18px;
|
||||
color: #555555;
|
||||
padding: 10px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.book-header a.header-menu:hover{
|
||||
text-decoration: none;
|
||||
color: #5cb85c;
|
||||
}
|
||||
|
||||
.page-wrapper {
|
||||
position: relative;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.book .book-body .page-wrapper .page-inner {
|
||||
position: relative;
|
||||
left: 0px;
|
||||
transition: 300ms ease left;
|
||||
}
|
||||
|
||||
.page-inner {
|
||||
position: relative;
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 15px 40px 15px;
|
||||
}
|
||||
|
||||
@media (min-width: 600px){
|
||||
.book.with-summary .book-body {
|
||||
left: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 600px){
|
||||
.book-summary {
|
||||
width: calc(100% - 60px);
|
||||
bottom: 0;
|
||||
left: -100%;
|
||||
}
|
||||
.book.with-summary .book-body {
|
||||
-webkit-transform: translate(calc(100% - 60px),0);
|
||||
-moz-transform: translate(calc(100% - 60px),0);
|
||||
-ms-transform: translate(calc(100% - 60px),0);
|
||||
-o-transform: translate(calc(100% - 60px),0);
|
||||
transform: translate(calc(100% - 60px),0);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1240px){
|
||||
.book-body {
|
||||
-webkit-transition: -webkit-transform 250ms ease;
|
||||
-moz-transition: -moz-transform 250ms ease;
|
||||
-o-transition: -o-transform 250ms ease;
|
||||
transition: transform 250ms ease;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1240px){
|
||||
.book-body .body-inner {
|
||||
position: static;
|
||||
min-height: calc(100% - 50px);
|
||||
}
|
||||
}
|
||||
|
||||
.navbar{
|
||||
background: #5cb85c;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.navbar a{
|
||||
color: #FFF;
|
||||
}
|
||||
.navbar-brand{
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@media (min-width: 768px){
|
||||
.navbar {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.catalog .panel{
|
||||
margin-bottom: 0;
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
}
|
||||
|
||||
.catalog .catalog-title {
|
||||
border-bottom: 1px solid #EAEAEA;
|
||||
padding: 1rem 1.25rem;
|
||||
background: rgba(0, 0, 0, .03);
|
||||
cursor: pointer;
|
||||
color: #333;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.catalog-item{
|
||||
padding: 8px 15px;
|
||||
margin-left: 15px;
|
||||
color: #888;
|
||||
border-bottom: solid #EEE 1px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.action-item h2 a{
|
||||
color: #5cb85c;
|
||||
}
|
||||
|
||||
a:hover{
|
||||
color: #449d44;
|
||||
}
|
||||
|
||||
.search-box{
|
||||
position: relative;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.navbar{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.main-content{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.text-bold{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/**third part*/
|
||||
|
||||
.algolia-autocomplete {
|
||||
width: 100%;
|
||||
}
|
||||
.algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint {
|
||||
width: 100%;
|
||||
}
|
||||
.algolia-autocomplete .aa-hint {
|
||||
color: #888;
|
||||
}
|
||||
.algolia-autocomplete .aa-dropdown-menu {
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
border: 1px solid #EEE;
|
||||
border-top: none;
|
||||
}
|
||||
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion {
|
||||
cursor: pointer;
|
||||
padding: 5px 4px;
|
||||
}
|
||||
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor {
|
||||
background-color: #449d44;
|
||||
color: #FFF;
|
||||
}
|
||||
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
/* Doxy pretty-printing styles. Used with prettify.js. */
|
||||
|
||||
pre .str, code .str { color: #fec243; } /* string - eggyolk gold */
|
||||
pre .kwd, code .kwd { color: #8470FF; } /* keyword - light slate blue */
|
||||
pre .com, code .com { color: #32cd32; font-style: italic; } /* comment - green */
|
||||
pre .typ, code .typ { color: #6ecbcc; } /* type - turq green */
|
||||
pre .lit, code .lit { color: #d06; } /* literal - cherry red */
|
||||
pre .pun, code .pun { color: #8B8970; } /* punctuation - lemon chiffon4 */
|
||||
pre .pln, code .pln { color: #f0f0f0; } /* plaintext - white */
|
||||
pre .tag, code .tag { color: #9c9cff; } /* html/xml tag (bluey) */
|
||||
pre .htm, code .htm { color: #dda0dd; } /* html tag light purply*/
|
||||
pre .xsl, code .xsl { color: #d0a0d0; } /* xslt tag light purply*/
|
||||
pre .atn, code .atn { color: #46eeee; font-weight: normal;} /* html/xml attribute name - lt turquoise */
|
||||
pre .atv, code .atv { color: #EEB4B4; } /* html/xml attribute value - rosy brown2 */
|
||||
pre .dec, code .dec { color: #3387CC; } /* decimal - blue */
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre.prettyprint, code.prettyprint {
|
||||
font-family:'Droid Sans Mono','CPMono_v07 Bold','Droid Sans';
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
background-color: #0f0f0f;
|
||||
-moz-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
-o-border-radius: 8px;
|
||||
-ms-border-radius: 8px;
|
||||
-khtml-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
} /* background is black (well, just a tad less dark ) */
|
||||
|
||||
pre.prettyprint {
|
||||
padding: 1em;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
pre.prettyprint a, code.prettyprint a {
|
||||
text-decoration:none;
|
||||
}
|
||||
/* Specify class=linenums on a pre to get line numbering; line numbers themselves are the same color as punctuation */
|
||||
ol.linenums { margin-top: 0; margin-bottom: 0; color: #8B8970; } /* IE indents via margin-left */
|
||||
li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none }
|
||||
/* Alternate shading for lines */
|
||||
li.L1,li.L3,li.L5,li.L7,li.L9 { }
|
||||
|
||||
/* print is mostly unchanged from default at present */
|
||||
@media print {
|
||||
pre.prettyprint, code.prettyprint { background-color: #fff; }
|
||||
pre .str, code .str { color: #088; }
|
||||
pre .kwd, code .kwd { color: #006; font-weight: bold; }
|
||||
pre .com, code .com { color: #oc3; font-style: italic; }
|
||||
pre .typ, code .typ { color: #404; font-weight: bold; }
|
||||
pre .lit, code .lit { color: #044; }
|
||||
pre .pun, code .pun { color: #440; }
|
||||
pre .pln, code .pln { color: #000; }
|
||||
pre .tag, code .tag { color: #b66ff7; font-weight: bold; }
|
||||
pre .htm, code .htm { color: #606; font-weight: bold; }
|
||||
pre .xsl, code .xsl { color: #606; font-weight: bold; }
|
||||
pre .atn, code .atn { color: #c71585; font-weight: normal; }
|
||||
pre .atv, code .atv { color: #088; font-weight: normal; }
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.dsideal.sso.Interceptor;
|
||||
|
||||
import com.dsideal.sso.Util.CommonUtil;
|
||||
import com.jfinal.aop.Interceptor;
|
||||
import com.jfinal.aop.Invocation;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* 参数不能为空注解验证
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
|
||||
public class EmptyInterceptor implements Interceptor {
|
||||
@Override
|
||||
public void intercept(Invocation inv) {
|
||||
EmptyInterface annotation = inv.getMethod().getAnnotation(EmptyInterface.class);
|
||||
if (annotation != null) {
|
||||
noEmpty(annotation, inv);
|
||||
} else {
|
||||
inv.invoke();
|
||||
}
|
||||
}
|
||||
|
||||
public void noEmpty(EmptyInterface annotation, Invocation inv) {
|
||||
Controller con = inv.getController();
|
||||
String header = con.getHeader("Content-Type"); //取出head头
|
||||
if (header != null && header.indexOf("multipart/form-data") != -1) { //判断是否是form-data
|
||||
inv.invoke();
|
||||
}
|
||||
String[] value = annotation.value();
|
||||
boolean isTrue = true;
|
||||
String key = "";
|
||||
for (String v : value) {
|
||||
String parameter = con.getPara(v);
|
||||
if (parameter == null || parameter.trim().length() == 0) {
|
||||
isTrue = false;
|
||||
key = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isTrue) {
|
||||
inv.invoke();
|
||||
} else {
|
||||
con.renderJson(CommonUtil.returnMessageJson(false, "传入的" + key + "参数为空!"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.dsideal.sso.Interceptor;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Inherited
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE, ElementType.METHOD})
|
||||
public @interface EmptyInterface {
|
||||
String[] value();
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.dsideal.sso.Plugin;
|
||||
|
||||
import freemarker.template.Template;
|
||||
import freemarker.template.TemplateException;
|
||||
import io.github.yedaxia.apidocs.DocContext;
|
||||
import io.github.yedaxia.apidocs.IPluginSupport;
|
||||
import io.github.yedaxia.apidocs.Resources;
|
||||
import io.github.yedaxia.apidocs.Utils;
|
||||
import io.github.yedaxia.apidocs.parser.ControllerNode;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class PostmanDocPlugin implements IPluginSupport {
|
||||
public PostmanDocPlugin() {
|
||||
}
|
||||
|
||||
public void execute(List<ControllerNode> controllerNodeList) {
|
||||
FileWriter docFileWriter = null;
|
||||
|
||||
try {
|
||||
Template ctrlTemplate = this.getDocTpl();
|
||||
|
||||
String docFileName = String.format("%s-%s-api-docs.json", DocContext.getDocsConfig().getProjectName(), DocContext.getDocsConfig().getApiVersion());
|
||||
File docFile = new File(DocContext.getDocPath(), docFileName);
|
||||
docFileWriter = new FileWriter(docFile);
|
||||
Map<String, Object> data = new HashMap();
|
||||
data.put("controllerNodes", controllerNodeList);
|
||||
data.put("currentApiVersion", DocContext.getCurrentApiVersion());
|
||||
data.put("projectName", DocContext.getDocsConfig().getProjectName());
|
||||
data.put("i18n", DocContext.getI18n());
|
||||
ctrlTemplate.process(data, docFileWriter);
|
||||
|
||||
} catch (IOException | TemplateException var10) {
|
||||
var10.printStackTrace();
|
||||
} finally {
|
||||
Utils.closeSilently(docFileWriter);
|
||||
}
|
||||
}
|
||||
|
||||
private Template getDocTpl() throws IOException {
|
||||
return Resources.getFreemarkerTemplate("postman-doc.json.ftl");
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
{
|
||||
"info": {
|
||||
"_postman_id": "",
|
||||
"name": "${projectName}",
|
||||
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
||||
},
|
||||
"item": [
|
||||
<#list controllerNodes as controller>
|
||||
{
|
||||
"name": "${controller.description}",
|
||||
"item": [
|
||||
<#list controller.requestNodes as reqNode>
|
||||
{
|
||||
"name": "${reqNode.description}",
|
||||
"request": {
|
||||
"url": {
|
||||
"raw": "{{domain}}${reqNode.url}",
|
||||
"query": [
|
||||
<#if reqNode.paramNodes?size != 0>
|
||||
<#list reqNode.paramNodes as paramNode>
|
||||
{
|
||||
"key": "${paramNode.name}",
|
||||
"value": "",
|
||||
"description": "${paramNode.description}"
|
||||
}<#if paramNode_has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
]
|
||||
}
|
||||
}
|
||||
}<#if reqNode_has_next>,</#if>
|
||||
</#list>
|
||||
]
|
||||
}<#if controller_has_next>,</#if>
|
||||
</#list>
|
||||
]
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,37 @@
|
||||
{
|
||||
"info": {
|
||||
"_postman_id": "",
|
||||
"name": "${projectName}",
|
||||
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
||||
},
|
||||
"item": [
|
||||
<#list controllerNodes as controller>
|
||||
{
|
||||
"name": "${controller.description}",
|
||||
"item": [
|
||||
<#list controller.requestNodes as reqNode>
|
||||
{
|
||||
"name": "${reqNode.description}",
|
||||
"request": {
|
||||
"url": {
|
||||
"raw": "{{domain}}${reqNode.url}",
|
||||
"query": [
|
||||
<#if reqNode.paramNodes?size != 0>
|
||||
<#list reqNode.paramNodes as paramNode>
|
||||
{
|
||||
"key": "${paramNode.name}",
|
||||
"value": "",
|
||||
"description": "${paramNode.description}"
|
||||
}<#if paramNode_has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
]
|
||||
}
|
||||
}
|
||||
}<#if reqNode_has_next>,</#if>
|
||||
</#list>
|
||||
]
|
||||
}<#if controller_has_next>,</#if>
|
||||
</#list>
|
||||
]
|
||||
}
|
Loading…
Reference in new issue