Как защитить маршрут swagger/1.0/swagger.json в .NET 8?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как защитить маршрут swagger/1.0/swagger.json в .NET 8?

Сообщение Anonymous »

Я создал собственный файл SwaggerUI (index.html) в приложении ReactJS, который доступен по адресу myapplication.com/docs/swagger/index.html. Поскольку маршрут проходит через /docs/, применяется аутентификация STS. Однако SwaggerUI извлекает данные из конечной точки /swagger/v1/swagger.json, которая в настоящее время незащищена, что позволяет любому получить к ней доступ по адресу myapplication.com/swagger/v1/swagger.json. Как я могу защитить эту конечную точку в .NET 8?
ReactJS:

App.tsx
import React, { useState } from 'react'
import SwaggerUI from 'swagger-ui-react'
import 'swagger-ui-react/swagger-ui.css'
import { GettingStartedSection } from 'sections/getting-started'

const App = () => {
const [activeItem, setActiveItem] = useState('getting-started')

return (









)
}

export default App

root-app.tsx
import React from 'react'
import { Route, BrowserRouter, Switch } from 'react-router-dom'
import { AuthContextProvider } from './contexts/auth.context'
import { AuthzContextProvider } from './contexts/authz.context'
import { UserContextProvider } from './contexts/user'
import { AuthCallbackPage, LogoutCallbackPage, LogoutPage, SilentRenewPage } from './pages/auth'
import { AuthorizedRoute } from './routes/authorized-route'
import App from './App'

const RootApp = () => {
const returnEmptyComponent = () =>

return (















)
}

export default RootApp

Код C#:
app.UseSwagger();

app.UseSwaggerUI(options =>
{
// build a swagger endpoint for each discovered API version
bool isPathPrefixDefined = !string.IsNullOrWhiteSpace(swaggerOptions?.PathPrefix);

if (isPathPrefixDefined)
{
foreach (var description in provider.ApiVersionDescriptions)
{
options.SwaggerEndpoint($"{swaggerOptions.PathPrefix}/swagger/{description.GroupName}/swagger.json",
$"{swaggerOptions.GeneratedJsonName} {description.GroupName.ToUpperInvariant()}");
}
}
else
{
foreach (var description in provider.ApiVersionDescriptions)
{
options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
}
}

if (swaggerOptions.IncludeAuthentication)
{
options.OAuthClientId(swaggerOptions.SecurityDefinition.ClientId);
options.OAuthClientSecret(swaggerOptions.SecurityDefinition.ClientSecret);
}
});


Подробнее здесь: https://stackoverflow.com/questions/790 ... e-in-net-8
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как защитить маршрут swagger/1.0/swagger.json в .NET 8?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как защитить маршрут swagger/1.0/swagger.json в .NET 8?
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как защитить маршрут swagger/1.0/swagger.json в .NET 8?
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Почему .NET 5 ASP.NET CARE-ALL-маршрут заменяет определенный маршрут, когда в .NET CORE 3 он не сделал?
    Anonymous » » в форуме C#
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Как защитить маршрут с помощью сеансов Vert.x
    Anonymous » » в форуме JAVA
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»