Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Accès à une ressource sécurisée par une authentification HTTP Basic

Pour que Swagger-ui offre la possibilité de saisir des informations d'authentification, il faut ajouter le package com.hardis.adelia.webservice à la propriété resourcePackagedu bean Swagger2Feature.
Pour choisir le type d'informations saisissables (jeton JWT et/ou HTTP Basic), il faut ajouter une propriété SwaggerSecurityDefinitions au jaxrs:server.

Pour des informations en lien avec une authentification HTTP Basic, il faut ajouter une entrée de type "basic_key" avec la classe d'implémentation io.swagger.models.auth.BasicAuthDefinition

Exemple :

Bloc de code
<bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature" lazy-init="true">   
<!-- ... -->
      <property name="resourcePackage" value="com.hardis.adelia.webservice,hardis.fr" />
<!-- ... -->
</bean>


<jaxrs:server id="RestAdelia" address="/" transportId="http://cxf.apache.org/transports/http">              
	<jaxrs:features>
    	<ref bean="swagger2Feature" />
	</jaxrs:features>          
   <jaxrs:properties>
		<entry key="SwaggerSecurityDefinitions">
        	<map>
            	<entry key="basic_Key">        
					<bean class="io.swagger.models.auth.BasicAuthDefinition" />                  
				</entry>
           	</map>
         </entry>
	</jaxrs:properties>
</jaxrs:server> 

...

Bloc de code
<bean id="openApiFeature" class="com.hardis.adelia.webservice.OpenApiFeatureExtended" lazy-init="true">   
<!-- ... -->
</bean>

<jaxrs:server id="RestAdelia" address="/" transportId="http://cxf.apache.org/transports/http">              
	<jaxrs:features>
    	<ref bean="openApiFeature" />
	</jaxrs:features>          
    <jaxrs:properties>   
		<entry key="SwaggerSecurityDefinitions">    	 	
        	<map> 
           		<entry key="jwt_Key">        
             		<bean class="io.swagger.v3.oas.models.security.SecurityScheme" >  
                		<property name="name" value="jwt_Key"/>
                		<property name="type">
                  			<value type="io.swagger.v3.oas.models.security.SecurityScheme.Type">HTTP</value>
                		</property>                		
						<property name="scheme" value="bearer"/>
				 		<property name="bearerFormat" value="JWT"/>  
              		</bean>
            	</entry>
            	<entry key="basic_Key">        
              		<bean class="io.swagger.v3.oas.models.security.SecurityScheme" >
						<property name="name" value="basic_Key"/>
						<property name="type">
                			<value type="io.swagger.v3.oas.models.security.SecurityScheme.Type">HTTP</value>
                		</property>
						<property name="scheme" value="basic"/>
			  		</bean>                  
            	</entry>
          </map>
       </entry>  
	</jaxrs:properties>
</jaxrs:server> 


Ajout d'annotations permettant à swagger-ui d'afficher la définition Adélia des champs alpha et numérique :

maxLength donne la longeur maximale (longueur Adélia) d'un champ alphanumérique
minimum et maximum donnent respectivement la borne inférieure et la borne supérieure d'un champ numérique selon sa définition Adélia.
Mise en garde :  Swagger-UI n'affiche correctement que les entiers compris entre -9007199254740991et 9007199254740991. Les entiers en dehors de cette plage ainsi que certains nombres décimaux peuvent faire l'objet d'un arrondissement.