From f1466a22fee63ea39186d074c5dc9e220038be75 Mon Sep 17 00:00:00 2001 From: kahboom Date: Fri, 8 Jan 2016 14:08:06 -0500 Subject: [PATCH 01/13] re #899 Update naming for blog posts --- .gitignore | 1 + _blog-src/_layouts/post.html | 15 + ...15-01-09-impatient-new-user-redux.markdown | 470 ++++++++++++++++++ .../2015-01-09-impatient-new-user.markdown | 1 + .../2015-03-06-custom-policies-redux.markdown | 191 +++++++ .../2015-03-06-custom-policies.markdown | 1 + .../2015-05-08-authorization-redux.markdown | 66 +++ .../_posts/2015-05-08-authorization.markdown | 2 + .../2015-05-09-policy-testing-redux.markdown | 205 ++++++++ .../_posts/2015-05-09-policy-testing.markdown | 2 + .../_posts/2015-05-19-rest-api-redux.markdown | 209 ++++++++ _blog-src/_posts/2015-05-19-rest-api.markdown | 1 + .../_posts/2015-06-02-swagger-redux.markdown | 61 +++ _blog-src/_posts/2015-06-02-swagger.markdown | 4 +- .../2015-06-04-dev-environment-redux.markdown | 220 ++++++++ .../2015-06-04-dev-environment.markdown | 2 + .../2015-06-11-basic-auth-redux.markdown | 155 ++++++ .../_posts/2015-06-11-basic-auth.markdown | 1 + .../_posts/2015-07-06-metrics-redux.markdown | 132 +++++ _blog-src/_posts/2015-07-06-metrics.markdown | 2 + .../2015-07-07-fuse-apis-redux.markdown | 172 +++++++ .../_posts/2015-07-07-fuse-apis.markdown | 1 + ...015-07-24-plugin-components-redux.markdown | 243 +++++++++ .../2015-07-24-plugin-components.markdown | 4 +- ...03-policy-endpoint-security-redux.markdown | 71 +++ ...15-08-03-policy-endpoint-security.markdown | 1 + ...015-08-17-limiting-policies-redux.markdown | 52 ++ .../2015-08-17-limiting-policies.markdown | 1 + 28 files changed, 2284 insertions(+), 2 deletions(-) create mode 100644 _blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown create mode 100644 _blog-src/_posts/2015-03-06-custom-policies-redux.markdown create mode 100644 _blog-src/_posts/2015-05-08-authorization-redux.markdown create mode 100644 _blog-src/_posts/2015-05-09-policy-testing-redux.markdown create mode 100644 _blog-src/_posts/2015-05-19-rest-api-redux.markdown create mode 100644 _blog-src/_posts/2015-06-02-swagger-redux.markdown create mode 100644 _blog-src/_posts/2015-06-04-dev-environment-redux.markdown create mode 100644 _blog-src/_posts/2015-06-11-basic-auth-redux.markdown create mode 100644 _blog-src/_posts/2015-07-06-metrics-redux.markdown create mode 100644 _blog-src/_posts/2015-07-07-fuse-apis-redux.markdown create mode 100644 _blog-src/_posts/2015-07-24-plugin-components-redux.markdown create mode 100644 _blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown create mode 100644 _blog-src/_posts/2015-08-17-limiting-policies-redux.markdown diff --git a/.gitignore b/.gitignore index 7aba5f8dd..824edbe8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .settings .classpath .project +.idea diff --git a/_blog-src/_layouts/post.html b/_blog-src/_layouts/post.html index b65fcd3f4..3efe5a596 100644 --- a/_blog-src/_layouts/post.html +++ b/_blog-src/_layouts/post.html @@ -11,6 +11,21 @@

{{ {{ page.categories | array_to_sentence_string }} + + {% if page.newUrl || page.oldUrl %} +
+ {% if page.newUrl %} + +

NOTE: A newer revision of this blogpost correct for apiman 1.2.x is available. This version written for apiman 1.1.x, for which it remains valid.

+ {% endif %} + + {% if page.oldUrl %} + +

NOTE: This is a redux of our popular Keycloak OAuth2 for *apiman 1.2.x*. If you're still using apiman 1.1.x, you can refer to the older revision.

+ {% endif %} +
+ {% endif %} +
{{ content }}
diff --git a/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown b/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown new file mode 100644 index 000000000..bc37288c0 --- /dev/null +++ b/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown @@ -0,0 +1,470 @@ +--- +layout: post +title: "An Impatient New User's Introduction to API Management with JBoss apiman 1.0" +date: 2015-01-09 09:15:00 +author: len_dimaggio +categories: introduction overview +oldUrl: 2015-01-09-impatient-new-user +--- + +Software application development models are evolutionary things. New technologies are always being created +and require new approaches. It's frequently the case today, that a service oriented architecture (SOA) model +is used and that the end product is a software service that can be used by applications. The explosion in +growth of mobile devices has only accelerated this trend. Every new mobile phone sold is another platform +onto which applications are deployed. These applications are often built from services provided from multiple +sources. The applications often consume these services through their APIs. + +OK, that's all interesting, but why does this matter? + + + +Here's why: + +If you are providing an API, you'd probably like to receive payment when it's used by an client app. For +example, let's say that you've spent months creating a new API that provides incredibly accurate and +timely driving directions. You can imagine every mobile phone GPS app making use of your API someday. +That is, however, assuming that you can find a way to enforce a contract on consumers of the API and provide +them with a service level agreement (SLA). Also, you have to find a way to actually track consumers' use of +the API so that you can actually enforce that SLA. Finally, you have to have the means to update an API +and publish new versions of APIs. + +Likewise, if you are consuming an API, for example, if you want to build the killer app that will use that +cool new mapping API, you have to have the means to find the API, identify the API's endpoint, and +register your usage of the API with its provider. + +The approach that is followed to fulfill both API providers' and consumers' needs is...API Management. + +## JBoss apiman 1.0 + +apiman is JBoss' open source API Management system. apiman fulfills API providers' and consumers' +needs by implementing: + +* *API Manager* - The API Manager provides an easy way for API providers to use a web UI to define API contracts for their APIs, apply these contracts across multiple APIs, and control role-based user access and API versioning. These contracts can govern access to APIs and limits on the rate at which consumers can access APIs. The same UI enables API consumers to easily locate and access APIs. + +* *API Gateway* - The gateway applies the API contract policies of API Management by enforcing at runtime the rules defined in the contracts and tracking the API consumers' use of the APIs for every request made to the APIs. The way that the API Gateway works is that the consumer of the API accesses the API through a URL that designates the API Gateway as a proxy for the API. If the policies defined to govern access to the API (see a later section in this post for a discussion of apiman polices), the API Gateway then proxies requests to the API's backend API implementation. + +The best way to understand API Management with apiman is to see it in action. In this post, we'll install +apiman 1.0, configure an API with contracts through the API Manager, and watch the API Gateway control access +to the API and track its use. + +## Prerequisites + +We don't need very much to run apiman out of the box. Before we install apiman, you'll have to have Java (version 1.7 or newer) installed on your system. You'll also need to git and maven installed to be able to build the example API that we'll use. + +A note on software versions: In this post we'll use the latest available version of apiman as of December 2014. As if this writing, version 1.0 of apiman was just released (December 2014). Depending on the versions of software that you use, some screen displays may look a bit different. + +## Getting apiman + +Like all JBoss software, installation of apiman is simple. First, you will need a client app server on which to install and run apiman. We'll use the open source JBoss WildFly server release 8.2 [http://www.wildfly.org/](http://www.wildfly.org/). To make things easier, apiman includes a pointer to JBoss WildFly on its download page here: [http://www.apiman.io/latest/download.html](http://www.apiman.io/latest/download.html) + +To install WildFly, simply download [http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip](http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip) and unzip the file into the directory in which you want to run the sever. + +Then, download the apiman 1.0 WildFly overlay zip file inside the directory that was created when you un-zipped the WildFly download. The apiman 1.0 WildFly overlay zip file is available here: [http://downloads.jboss.org/apiman/1.0.0.Final/apiman-distro-wildfly8-1.0.0.Final-overlay.zip](http://downloads.jboss.org/apiman/1.0.0.Final/apiman-distro-wildfly8-1.0.0.Final-overlay.zip) + +The commands that you will execute will look something like this: + +{% highlight bash %} +mkdir apiman +cd apiman +unzip wildfly-8.2.0.Final.zip +unzip -o apiman-distro-wildfly8-1.0.0.Final-overlay.zip -d wildfly-8.2.0.Final +{% endhighlight %} + +Then, to start the server, execute these commands: + +{% highlight bash %} +cd wildfly-8.2.0.Final +./bin/standalone.sh -c standalone-apiman.xml +{% endhighlight %} + +The server will write logging messages to the screen. When you see some messages that look like this, you'll know that the server is up and running with apiman installed: + +{% highlight text %} +13:57:03,229 INFO [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "apiman-ds.xml" (runtime-name : "apiman-ds.xml") +13:57:03,261 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management +13:57:03,262 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990 +13:57:03,262 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.2.0.Final "Tweek" started in 5518ms - Started 754 of 858 services (171 services are lazy, passive or on-demand) +{% endhighlight %} + +If this were a production server, the first thing that we'd do is to change the OOTB default admin username and/or password. apiman is configured by default to use JBoss KeyCloak [http://keycloak.jboss.org/](http://keycloak.jboss.org/) for password security. Also, the default database used by apiman to store contract and API information is the H2 database. For a production server, you'd want to reconfigure this to use a production database. Note: apiman includes DDLs for both MySQL and PostgreSQL. + +For the purposes of our demo, we'll keep things simple and use the default configuration. + +To access apiman's API Manager UI, go to: [http://localhost:8080/apiman-manager](http://localhost:8080/apiman-manager), and log in. The admin user account that we'll use has a username of "admin" and a password of "admin123!" + +You should see a screen that looks like this: + +![Dashboard](/blog/images/2015-01-09/apiman_1.png) + +Before we start using apiman, let's take a look at how apiman defines how APIs and the meta data on which they depend are organized. + +## Policies, Plans, and Organizations + +apiman uses a hierarchical data model that consists of these elements: Polices, Plans, and Organizations: + +![Diagram_1](/blog/images/2015-01-09/apiman_2.jpg) + +## Policies + +Policies are at the lowest level of the data model, and they are the basis on which the higher level elements of the data model are built. A policy defines an action that is performed by the API Gateway at runtime. Everything defined in the API Manager UI is there to enable apiman to apply policies to requests made to APIs. + +When a request to an API is made, apiman creates a chain of policies to be applied to that request. apiman policy chains define a specific sequence order in which the policies defined in the API Manager UI are applied to API requests. + +The sequence in which incoming API requests have policies applied is: + +* First, at the client app level. In apiman, a client app is contracted to use one or more APIs. +* Second, at the plan level. In apiman, policies are organized into groups called plans. (We'll discuss plans in the next section of this post.) +* Third, at the individual API level. + +What happens is that when an API request is received by the API Gateway at runtime, the policy chain is applied in the order of client app, plan, and API. If no failures, such as a rate counter being exceeded, occur, the API Gateway sends the request to the API. As we mentioned earlier in this post, the API Gateway acts as a proxy for the API: + +![Diagram_2](/blog/images/2015-01-09/apiman_3.jpg) + +Next, when the API Gateway receives a response from the API's backend implementation, the policy chain is applied again, but this time in the reverse order. The API policies are applied first, then the plan policies, and finally the client app policies. If no failures occur, then the API response is sent back to the consumer of the API. + +By applying the policy chain twice, both for the originating incoming request and the resulting response, apiman allows policy implementations two opportunities to provide management functionality during the lifecycle. The following diagram illustrates this two-way approach to applying policies: + +![Diagram_3](/blog/images/2015-01-09/apiman_4.jpg) + +## Plans + +In apiman, a "plan" is a set policies that together define the level of service that apiman provides for API. Plans enable apiman users to define multiple different levels of service for their APIs, based on policies. It's common to define different plans for the same API, where the differences depend on configuration options. For example, a group or company may offer both a "gold" and "silver" plan for the same API. The gold plan may be more expensive than the silver plan, but it may offer a higher level of API requests in a given (and configurable) time period. + +## Organizations + +The "organization" is at top level of the apiman data model. + +An organization contains and manages all elements used by a company, university, group inside a company, etc. for API management with apiman. All plans, APIs, client apps, and users for a group are defined in an apiman organization. In this way, an organization acts as a container of other elements. Users must be associated with an organization before they can use apiman to create or consume APIs. apiman implements role-based access controls for users. The role assigned to a user defines the actions that a user can perform and the elements that a user can manage. + +Before we can define an API, the policies that govern how it is accessed, the users who will be able to access, and the organizations that will create and consume it, we need an API and a client app to access that API. Luckily, creating the API and deploying it to our WildFly server, and accessing it through a client app are easy. + +## Getting and Building and Deploying the Example API + +The source code for the example API is contained in a git repo (http://git-scm.com) hosted at github (https://github.com/apiman). To download a copy of the example API, navigate to the directory in which you want to build the API and execute this git command: + + git clone git@github.com:apiman/apiman-quickstarts.git + +As the source code is downloading, you'll see output that looks like this: + + git clone git@github.com:apiman/apiman-quickstarts.git + Initialized empty Git repository in /tmp/tmp/apiman-quickstarts/.git/ + remote: Counting objects: 104, done. + remote: Total 104 (delta 0), reused 0 (delta 0) + Receiving objects: 100% (104/104), 18.16 KiB, done. + Resolving deltas: 100% (40/40), done. + +And, after the download is complete, you'll see a populated directory tree that looks like this: + + +{% highlight text %} +└── apiman-quickstarts + ├── echo-api + │ ├── pom.xml + │ ├── README.md + │ └── src + │ └── main + │ ├── java + │ │ └── io + │ │ └── apiman + │ │ └── quickstarts + │ │ └── echo + │ │ ├── EchoResponse.java + │ │ └── EchoServlet.java + │ └── webapp + │ └── WEB-INF + │ ├── jboss-web.xml + │ └── web.xml + ├── LICENSE + ├── pom.xml + ├── README.md + ├── release.sh + └── src + └── main + └── assembly + └── dist.xml +{% endhighlight %} + +As we mentioned earlier in the post, the example API is very simple. The only action that the API performs is to echo back in responses the meta data in the REST (http://en.wikipedia.org/wiki/Representational_state_transfer) requests that it receives. + +Maven is used to build the API. To build the API into a deployable .war file, navigate to the directory into which you downloaded the API example: + + cd apiman-quickstarts/echo-api + +And then execute this maven command: + + mvn package + +As the API is being built into a .war file, you'll see output that looks like this: + +{% highlight text %} +[INFO] Scanning for projects... +[INFO] +[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1 +[INFO] +[INFO] ------------------------------------------------------------------------ +[INFO] Building apiman-quickstarts-echo-api 1.0.1-SNAPSHOT +[INFO] ------------------------------------------------------------------------ +[INFO] +[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ apiman-quickstarts-echo-api --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] skip non existing resourceDirectory /jboss/local/redhat_git/apiman-quickstarts/echo-api/src/main/resources +[INFO] +[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ apiman-quickstarts-echo-api --- +[INFO] Compiling 2 source files to /jboss/local/redhat_git/apiman-quickstarts/echo-api/target/classes +[INFO] +[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ apiman-quickstarts-echo-api --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] skip non existing resourceDirectory /jboss/local/redhat_git/apiman-quickstarts/echo-api/src/test/resources +[INFO] +[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ apiman-quickstarts-echo-api --- +[INFO] No sources to compile +[INFO] +[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ apiman-quickstarts-echo-api --- +[INFO] No tests to run. +[INFO] +[INFO] --- maven-war-plugin:2.2:war (default-war) @ apiman-quickstarts-echo-api --- +[INFO] Packaging webapp +[INFO] Assembling webapp in [/jboss/local/redhat_git/apiman-quickstarts/echo-api/target/apiman-quickstarts-echo-api-1.0.1-SNAPSHOT] +[INFO] Processing war project +[INFO] Copying webapp resources [/jboss/local/redhat_git/apiman-quickstarts/echo-api/src/main/webapp] +[INFO] Webapp assembled in [23 msecs] +[INFO] Building war: /jboss/local/redhat_git/apiman-quickstarts/echo-api/target/apiman-quickstarts-echo-api-1.0.1-SNAPSHOT.war +[INFO] WEB-INF/web.xml already added, skipping +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 1.184 s +[INFO] Finished at: 2014-12-26T16:11:19-05:00 +[INFO] Final Memory: 14M/295M +[INFO] ------------------------------------------------------------------------ +{% endhighlight %} + +If you look closely, near the end of the output, you'll see the location of the .war file: + + /jboss/local/redhat_git/apiman-quickstarts/echo-api/target/apiman-quickstarts-echo-api-1.0.1-SNAPSHOT.war + +To deploy the API, we can copy the .war file to our WildFly server's "deployments" directory. After you copy the API's .war file to the deployments directory, you'll see output like this generated by the WildFly server: + +{% highlight text %} +16:54:44,313 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of "apiman-quickstarts-echo-api-1.0.1-SNAPSHOT.war" (runtime-name: "apiman-quickstarts-echo-api-1.0.1-SNAPSHOT.war") +16:54:44,397 INFO [org.wildfly.extension.undertow] (MSC service thread 1-16) JBAS017534: Registered web context: /apiman-echo +16:54:44,455 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018559: Deployed "apiman-quickstarts-echo-api-1.0.1-SNAPSHOT.war" (runtime-name : "apiman-quickstarts-echo-api-1.0.1-SNAPSHOT.war") +{% endhighlight %} + +Make special note of this line of output: + +{% highlight text %} +16:54:44,397 INFO [org.wildfly.extension.undertow] (MSC service thread 1-16) JBAS017534: Registered web context: /apiman-echo +{% endhighlight %} + +This output indicates that the URL of the deployed example API is: + +{% highlight text %} +[a href="http://localhost:8080/apiman-echo" style="text-decoration: none;"]http://localhost:8080/apiman-echo +{% endhighlight %} + +Remember, however, that this is the URL of the deployed example API if we access it directly. We'll refer to this as the "unmanaged API" as we are able to connect to the API directly, without going through the API Gateway. The URL to access the API through the API Gateway ("the managed API") at runtime will be different. + +Now that our example API is installed, it's time to install and configure our client app to access the server. + +## Accessing the Example API Through a Client App + +There are a lot of options available when it comes to what we can use for a client app to access our API. We'll keep the client app simple so that we can keep our focus on apiman and simply install a REST client into the FireFox browser. The REST Client FireFox add-on (http://restclient.net/) is available here: https://addons.mozilla.org/en-US/firefox/addon/restclient/versions/2.0.3 + +After you install the client into FireFox, you can access the deployed API using the URL that we just defined. If you execute a GET command, you'll see output that looks like this: + +![Screenshot 4](/blog/images/2015-01-09/Screenshot-4.png) + +Now that our example API is built, deployed and running, it's time to create the organizations for the API provider and the API consumer. The differences between the requirements of the two organizations will be evident in their apiman configuration properties. + +## Creating Users for the API Provider and Consumer + +Before we create the organizations, we have to create a user for each organization. We'll start by creating the API provider user. To do this, logout from the admin account in the API Manager UI. The login dialog will then be displayed. + +![Screenshot 5](/blog/images/2015-01-09/Screenshot-5.png) + +Select the "New user" Option and register the API provider user: + +![Screenshot 6](/blog/images/2015-01-09/Screenshot-6.png) + +Then, logout and repeat the process to register a new client app developer user too: + +![Screenshot 7](/blog/images/2015-01-09/Screenshot-7.png) + +Now that the new users are registered we can create the organizations. + +## Creating the API Producer Organization + +To create the API producer organization, log back into the API Manager UI as the servprov user and select "Create a new Organization": + +![dash-2](/blog/images/2015-01-09/apiman_2.png) + +Select a name and description for the organization, and press "Create Organization": + +![Screenshot 15](/blog/images/2015-01-09/Screenshot-15.png) + +And, here's our organization: + +![Screenshot 16](/blog/images/2015-01-09/Screenshot-16.png) + +Note that in a production environment, users would request membership in an organization. The approval process for accepting new members into an organization would follow the organization's workflow, but this would be handled outside of the API Manager. For the purposes of our demonstration, we'll keep things simple. + +## Configuring the API, its Policies, and Plans + +To configure the API, we'll first create a plan to contain the policies that we want applied by the API Gateway at runtime when requests to the API are made. To create a new plan, select the "Plans" tab. We'll create a "gold" plan: + +![Screenshot 17](/blog/images/2015-01-09/Screenshot-17.png) + +Once the plan is created, we will add policies to it: + +![Screenshot 18](/blog/images/2015-01-09/Screenshot-18.png) + +apiman provides several OOTB policies. Since we want to be able to demonstrate a policy being applied, we'll select a Rate Limiting Policy, and set its limit to a very low level. If our API receives more than 10 requests in a day, the policy should block all subsequent requests. So much for a "gold" level of service! + +![Screenshot 19](/blog/images/2015-01-09/Screenshot-19.png) + +After we create the policy and add it to the plan, we have to lock the plan: + +![Screenshot 21](/blog/images/2015-01-09/Screenshot-21.png) + +And, here is the finished, and locked plan: + +![Screenshot 22](/blog/images/2015-01-09/Screenshot-22.png) + +At this point, additional plans can be defined for the API. We'll also create a "silver" plan, that will offer a lower level of service (i.e., a request rate limit lower than 10 per day) than the gold plan. Since the process to create this silver plan is identical to that of the gold plan, we'll skip the screenshots. + +Now that the two plans are complete and locked, it's time to define the API. + +![Screenshot 23](/blog/images/2015-01-09/Screenshot-23.png) + +We'll give the API an appropriate name, so that providers and consumers alike will be able to run a query in the API Manager to find it. + +![Screenshot 24](/blog/images/2015-01-09/Screenshot-24.png) + +After the API is defined, we have to define its implementation. In the context of the API Manager, the API Endpoint is the API's direct URL. Remember that the API Gateway will act as a proxy for the API, so it must know the API's actual URL. In the case of our example API, the URL is: [http://localhost:8080/apiman-echo](http://localhost:8080/apiman-echo) + +![Screenshot 25](/blog/images/2015-01-09/Screenshot-25.png) + +The plans tab shows which plans are available to be applied to the API: + +![Screenshot 26](/blog/images/2015-01-09/Screenshot-26.png) + +Let's make our API more secure by adding an authentication policy that will require users to login before they can access the API. Select the Policies tab, and then define a simple authentication policy. Remember the user name and password that you define here as we'll need them later on when send requests to the API. + +![Screenshot 27](/blog/images/2015-01-09/Screenshot-27.png) + +After the authentication policy is added, we can publish the API to the API Gateway: + +![Screenshot 28](/blog/images/2015-01-09/Screenshot-28.png) + +And, here it is, the published API: + +![Screenshot 29](/blog/images/2015-01-09/Screenshot-29.png) + +OK, that finishes the definition of the API provider organization and the publication of the API. + +Next, we'll switch over to the API consumer side and create the API consumer organization and register a client app to connect to the managed API through the proxy of the API Gateway. + +## The API Consumer Organization + +We'll repeat the process that we used to create the client app development organization. Log in to the API Manager UI as the "appdev" user and create the organization: + +![Screenshot 30](/blog/images/2015-01-09/Screenshot-30.png) + +Unlike the process we used when we created the elements used by the API provider, the first step that we'll take is to create a new client app and then search for the API to be used by the client app: + +![Screenshot 31](/blog/images/2015-01-09/Screenshot-31.png) + +Searching for the API is easy, as we were careful to set the API name to something memorable: + +![Screenshot 32](/blog/images/2015-01-09/Screenshot-32.png) + +Select the API name, and then specify the plan to be used. We'll splurge and use the gold plan: + +![Screenshot 33](/blog/images/2015-01-09/Screenshot-33.png) + +Next, select "create contract" for the plan: + +![Screenshot 34](/blog/images/2015-01-09/Screenshot-34.png) + +Then, agree to the contract terms (which seem to be written in a strange form of Latin in the apiman 1.0 release): + +![Screenshot 35](/blog/images/2015-01-09/Screenshot-35.png) + +The last step is to register the client app with the API Gateway so that the gateway can act as a proxy for the API: + +![Screenshot 36](/blog/images/2015-01-09/Screenshot-36.png) + +Congratulations! All the steps necessary to provide and consume the API are complete! + +There's just one more step that we have to take in order for client apps to be able access the API through the API Gateway. + +Remember the URL that we used to access the unmanaged API directly? Well, forget it. In order to access the managed API through the API Gateway acting as a proxy for other API we have to obtain the managed API's URL. In the API Manager UI, head on over to the "APIs" tab for the client app, click on the the '>' character to the left of the API name. This will expose the API Key and the API's HTTP endpoint in the API Gateway: + +![Screenshot 37](/blog/images/2015-01-09/Screenshot-37.png) + +In order to be able access the API through the API Gateway, we have to provide the API Key with each request. The API Key can be provided either through an HTTP Header (X-API-Key) or a URL query parameter. Luckily, the API Manager UI does the latter for us. Select the icon to the right of the HTTP Endpoint and this dialog is displayed: + +![Screenshot 38](/blog/images/2015-01-09/Screenshot-38.png) + +Copy the URL into the clipboard. We'll need to enter this into the client app in a bit. The combined API Key and HTTP endpoint should look something like this: + +[http://localhost:8080/apiman-gateway/ACMEServices/echo/1.0?apikey=c374c202-d4b3-4442-b9e4-c6654f406e3d](http://localhost:8080/apiman-gateway/ACMEServices/echo/1.0?apikey=c374c202-d4b3-4442-b9e4-c6654f406e3d) + +## Accessing the Managed API Through the apiman API Gateway, Watching the Policies at Runtime + +Thanks for hanging in there! The set up is done. Now, we can fire up the client app and watch the policies in action as they are applied at runtime by the API Gateway, for example: + +Open the client app, and enter the URL for the managed API [http://localhost:8080/apiman-gateway/ACMEServices/echo/1.0?apikey=c374c202-d4b3-4442-b9e4-c6654f406e3d](http://localhost:8080/apiman-gateway/ACMEServices/echo/1.0?apikey=c374c202-d4b3-4442-b9e4-c6654f406e3d) + +What happens first is that the authentication policy is applied and a login dialog is then displayed: + +![Screenshot 41](/blog/images/2015-01-09/Screenshot-41.png) + +Enter the username and password (user1/password) that we defined when we created the authentication policy to access the API. The fact that you are seeing this dialog confirms that you are accessing the managed API and are not accessing the API directly. + +When you send a GET request to the API, you should see a successful response: + +![Screenshot 40](/blog/images/2015-01-09/Screenshot-40.png) + +So far so good. Now, send 10 more requests and you will see a response that looks like this as the gold plan rate limit is exceeded: + +![Screenshot 39](/blog/images/2015-01-09/Screenshot-39.png) + +And there it is. Your gold plan has been exceeded. Maybe next time you'll spend a little more and get the platinum plan! ;-) + +## Wrap-up + +Let's recap what we just accomplished in this demo: + +* We installed apiman 1.0 onto a WildFly server instance. +* We used git to download and maven to build a sample REST client. +* As an API provider, we created an organization, defined policies based on API use limit rates and user authentication, and a plan, and assigned them to an API. +* As an API consumer, we searched for and found that API, and assigned it to a client app. +* As a client app, we accessed the API and observed how the API Gateway managed the API. + +And, if you note, in the process of doing all this, the only code that we had to write or build was for the client app. We were able to fully configure the API, policies, plans, and the client app in the API Manager UI. + +## What's Next? + +In this post, we've only scratched the surface of API Management with apiman. To learn more about apiman, you can explore its website here: http://www.apiman.io/ + +Join the project mailing list here: [https://lists.jboss.org/mailman/listinfo/apiman-user](https://lists.jboss.org/mailman/listinfo/apiman-user) + +And, better still, get involved! Contribute bug reports or feature requests. Write about your own experiences with apiman. Download the apiman source code, take a look around, and contribute your own additions. apiman 1.0 was just released, there's no better time to join in and contribute! + +## Downloads Used in this Article + +* REST Client [http://restclient.net/](http://restclient.net/) FireFox Add-On - [https://addons.mozilla.org/en-US/firefox/addon/restclient/versions/2.0.3](https://addons.mozilla.org/en-US/firefox/addon/restclient/versions/2.0.3) +* Echo API source code - [https://github.com/apiman/apiman-quickstarts](https://github.com/apiman/apiman-quickstarts) +* apiman 1.0 - [http://downloads.jboss.org/apiman/1.0.0.Final/apiman-distro-wildfly8-1.0.0.Final-overlay.zip](http://downloads.jboss.org/apiman/1.0.0.Final/apiman-distro-wildfly8-1.0.0.Final-overlay.zip) +* WildFly 8.2.0 - [http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip](http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip) +* Git - [http://git-scm.com](http://git-scm.com) +* Maven - [http://maven.apache.org](http://maven.apache.org) + +## References + +* [http://www.apiman.io/](http://www.apiman.io/) +* apiman tutorial videos - [http://vimeo.com/user34396826](http://vimeo.com/user34396826) +* [http://www.softwareag.com/blog/reality_check/index.php/soa-what/what-is-api-management/](http://www.softwareag.com/blog/reality_check/index.php/soa-what/what-is-api-management/) +* [http://keycloak.jboss.org/](http://keycloak.jboss.org/) diff --git a/_blog-src/_posts/2015-01-09-impatient-new-user.markdown b/_blog-src/_posts/2015-01-09-impatient-new-user.markdown index 78153691e..da66edcdb 100644 --- a/_blog-src/_posts/2015-01-09-impatient-new-user.markdown +++ b/_blog-src/_posts/2015-01-09-impatient-new-user.markdown @@ -4,6 +4,7 @@ title: "An Impatient New User's Introduction to API Management with JBoss apima date: 2015-01-09 09:15:00 author: len_dimaggio categories: introduction overview +newUrl: 2015-01-09-impatient-new-user-redux --- Software application development models are evolutionary things. New technologies are always being created diff --git a/_blog-src/_posts/2015-03-06-custom-policies-redux.markdown b/_blog-src/_posts/2015-03-06-custom-policies-redux.markdown new file mode 100644 index 000000000..04a92c25c --- /dev/null +++ b/_blog-src/_posts/2015-03-06-custom-policies-redux.markdown @@ -0,0 +1,191 @@ +--- +layout: post +title: "Customizing JBoss apiman Through Policy Plugins" +date: 2015-03-06 10:22:00 +author: len_dimaggio +categories: plugins policies development maven +oldUrl: 2015-03-06-custom-policies +--- + +This is the second in a series of articles exploring API management with JBoss apiman. The first article +was a general introduction to apiman for impatient users where in only 10 minutes we installed apiman, +created users and organizations, and APIs, policies, contracts, and client apps. In this article, +we'll take the first step toward customizing apiman by creating new plugins to implement API policies. + + + +The major new feature added to release 1.0.2 of apiman [http://www.apiman.io/](http://www.apiman.io/) is the ability to extend its features through a custom plugin framework. Since policies perform the most important apiman runtime operations, plugins that enable you to create new policies are the first type of plugins to be supported. + +In this article, we'll examine all the steps that you must perform to create a new policy plugin, and then import it into apiman and configure an API to put it into use. + +## Prerequisites + +For this article, we'll assume that you have completed all the steps in the first article in this series. The first article guides even the most impatient user through installing and using apiman. + +## Accessing the Example Plugins + +Like all JBoss software, apiman provides functioning example code that you can use as a starting point for your own plugins. The easiest way to create and package an apiman is as a standard maven project packaged as a .war file. + +To download a copy of the example plugins, execute this git command: + + git clone https://github.com/apiman/apiman-plugins + +When the git clone operation completes, you'll have the source code for multiple example plugins. The exact set of plugins that you have downloaded may change, depending on when you download them, as more examples are always being added. For the purposes of this article, we'll focus on the "config-policy" example plugin. This plugin demonstrates how a plugin can be used to set the value of properties in a message being processed by an API. Specifically, this plugin defines properties in the request and response headers and enables you to set their values to "true." + +## Requirements for a Plugin Implementation + +The easiest way that an apiman policy plugin can be build and packaged is as a standard maven project packaged as a .war file. There are just a few modifications that are required to convert a .war into a plugin. + +Let's take a closer look at the files and directories that comprise the apiman config-policy plugin, and the changes that are needed to implement a plugin: + + ├---pom.xml + └---src + └---main + ├---apiman + │ ├---plugin.json + │ └---policyDefs + │ ├---config-policyDef.json + │ └---schemas + │ └---config-policyDef.schema + └---java + └---io + └---apiman + └---plugins + └---config_policy + ├---ConfigBean.java + └---ConfigPolicy.java + +The most obvious difference is the addition of the "apiman" directory. This directory is used to contain the configuration files for the plugin. (In other words, the files that make the project a plugin.) The only project-wide configuration change that you have to make is to modify the plugin's maven pom.xml file to include the apiman directory when the project is built. The following lines are added to the plugin's pom.xml file: + +{% highlight xml %} + + src/main/apiman + META-INF/apiman + true + +{% endhighlight %} + +The result of these statements in the pom.xml file is that the contents of the apiman directory are included in the project build's META-INF directory. (We'll take a look at this later when we build the plugin project.) Setting filtering to true enables maven property expansion during the creation of the plugin war file. +Configuration files for the plugin are contained in the apiman directory. The primary configuration file is the "plugin.json" file. This file is required for all apiman plugins, regardless of the plugin type. The meta-data contained in this file describes the plugin and is displayed in the API Manager UI. + +Since our example is contributing a policy, it must contain a JSON file that defines the policy. This JSON file is contained in the apiman/policyDefs directory and is named "config-policyDef.json." This file defines the following fields for the policy: + +* *id* - A unique identifier for the policy +* *name* - A user friendly (in other words, a human readable) name for the policy. This policy name is displayed in the API Manager UI +* *description* - A description of the policy +* *policyImpl* - This is the fully qualified classname name of the Java class that actually implements the policy. This value must be properly formatted to include information about the plugin, including placeholders for maven properties, for example, project version. +* *icon* - This is the name of a Font Awesome icon [http://fortawesome.github.io/Font-Awesome/](http://fontawesome.github.io/Font-Awesome/) that is displayed for the Policy in the API Manager UI. +* *formType* - The type of policy configuration UI form. Our example uses JsonSchema. +* *form* - This is a relative path to the policy configuration UI form contained in the plugin. Our examples uses the JSON Schema that defines the configuration data format. (More on this file in a minute. + +In our example, the config-policyDef.json looks like this: + +{% highlight json %} +{ + "id" : "config-policy", + "name" : "Config Policy", + "description" : "A policy used to showcase policy configuration.", + "policyImpl" "plugin:${project.groupId}:${project.artifactId}:${project.version}:${project.packaging}/io.apiman.plugins.config_policy.ConfigPolicy", + "icon" : "sliders", + "formType" : "JsonSchema", + "form" : "schemas/config-policyDef.schema" +} +{% endhighlight %} + +We mentioned that since our example uses the JSON schema [http://json-schema.org/documentation.html](http://json-schema.org/documentation.html), we have to also define the configuration data format. This is done in the policyDefs/schemas/config-policyDef.schema file. This file defines the format used in the policy configuration file data and is used by the API Manager UI to generate a form that is used to fill in the values to be used to configure the policy. In our example, the policy's JSON schema defines two properties: requestHeader and responseHeader. + +{% highlight json %} +{ + "title" : "Configure HTTP Headers", + "description" : "Set the HTTP request header to populate with the value 'true' when the request is made. Also set the HTTP response header to populate with the value 'true' after the response is received from the back-end API.", + "type" : "object", + "properties": { + "requestHeader": { + "title" : "Request Header", + "type" : "string", + "minLength" : 1, + "maxLength" : 64 + }, + "responseHeader": { + "title" : "Response Header", + "type" : "string", + "minLength" : 1, + "maxLength" : 64 + } + } +} +{% endhighlight %} + +That finishes the description of the policy's configuration files. To complete the policy plugin, the example also requires the Java implementation for the policy itself. The policy implementation is contained in the src/main/java/io/apiman/plugins/config_policy/ConfigPolicy.java file. The policy is very simple as it merely appends a header to the http request and response. + +Java policy classes must implement the apiman IPolicy interface. This example takes that a step further by actually extending the io.apiman.gateway.engine.policies.AbstractMappedPolicy class. By doing so, the policy Java code can take advantage of the AbstractMappedPolicy's class use of the Jackson (https://github.com/FasterXML/jackson) JSON parser to parse the policy configuration data into a Java bean. (In this example, the bean is implemented in src/main/java/io/apiman/plugins/config_policy/ConfigBean.java.) If the policy implemented the IPolicy interface, instead of extending AbstractMappedPolicy, then the policy Java class would have to implement its own parser. + +## Building the Plugin and Installing it into the Maven Repo + +Building the plugin with maven is easy. Just execute this command from the directory that contains the plugin's pom.xml file. + + mvn install + +In case you're wondering why, we're installing the plugin into the maven repo. The answer is simply that in the current release of apiman, the only supported install path is from the maven repo. Future releases of apiman will likely support additional installation paths. + +## Installing a Plugin into apiman + +In apiman, a policy plugin, once installed, is available on a system-wide basis. Accordingly, plugins can only be installed by an admin user. After you login as admin, you'll see this in the admin UI: + +![System Administration](/blog/images/2015-03-06/apiman-1.png) + +After selecting "Manage Plugins," you'll see a screen that looks like this: + +![Plugins](/blog/images/2015-03-06/apiman-2.png) + +And, if you then select "Add Plugin," you'll see this screen: + +![Add Plugin](/blog/images/2015-03-06/apiman-3.png) + +The GroupId, ArtifactId, and Version information is all available in the example plugin's pom.xml file: + +* *GroupId*: io.apiman.plugins +* *ArtifactId*: apiman-plugins-config-policy +* *Version*: 1.0.3-SNAPSHOT + +After you enter this information for the plugin and click on "Add Plugin," you'll see this displayed in the UI: + +![Plugins](/blog/images/2015-03-06/apiman-4.png) + +Congratulations! The plugin is installed and is ready to be used! Let's add it to an API and see it in action. + +## Using the Installed Plugin + +First, we have to log out of the admin account in the Admin UI and then log back in as the "serprov" API provider. Then, select our "echo" API, and create a new version of the API, based on the original version of the API: + +![New API Version](/blog/images/2015-03-06/apiman-6.png) + +And, when you add a new policy to the API, you'll see the example config API that we just installed: + +![Add Policy](/blog/images/2015-03-06/apiman-5.png) + +When you select the Config Policy, you'll be presented with a dialog where you can specify the values for the two properties defined in the policy: + +![Add Policy](/blog/images/2015-03-06/apiman-7.png) + +Let's fill in some easy to remember values: + +![Add Policy](/blog/images/2015-03-06/apiman-8.png) + +After adding the policy, you'll see it displayed in the policies defined for the API: + +![Add Policy](/blog/images/2015-03-06/apiman-9.png) + +Then publish the API. In order to consume the API, login to the API Manager UI as the client app developer "appdev", and create a new client app that uses the new API. (We covered the creation of new client apps in detail in the first article in this series) + +And when the API is invoked, you'll see something like this: + +![REST Client](/blog/images/2015-03-06/apiman99.png) + +And this: + +![REST Client](/blog/images/2015-03-06/apiman100.png) + +## In Conclusion + +OK, let's recap. apiman is a rapidly growing and developing project. Each new release brings new features. In release 1.0.2, it became possible for users to contribute custom policies into their apiman installation through the API Manager UI. diff --git a/_blog-src/_posts/2015-03-06-custom-policies.markdown b/_blog-src/_posts/2015-03-06-custom-policies.markdown index 17fb4d070..ac51dfb5b 100644 --- a/_blog-src/_posts/2015-03-06-custom-policies.markdown +++ b/_blog-src/_posts/2015-03-06-custom-policies.markdown @@ -4,6 +4,7 @@ title: "Customizing JBoss apiman Through Policy Plugins" date: 2015-03-06 10:22:00 author: len_dimaggio categories: plugins policies development maven +newUrl: 2015-03-06-custom-policies-redux --- This is the second in a series of articles exploring API management with JBoss apiman. The first article diff --git a/_blog-src/_posts/2015-05-08-authorization-redux.markdown b/_blog-src/_posts/2015-05-08-authorization-redux.markdown new file mode 100644 index 000000000..0b36332ca --- /dev/null +++ b/_blog-src/_posts/2015-05-08-authorization-redux.markdown @@ -0,0 +1,66 @@ +--- +layout: post +title: "Authorization: good god, what is it good for?" +date: 2015-05-08 13:15:15 +author: eric_wittmann +categories: authorization authentication policy +oldUrl: 2015-05-08-authorization +--- + +Quite a bit, actually. :) + +I want to talk about how Authorization currently works in apiman, because it's +a little bit more loosely coupled than you might expect. Note that at some +point in the future we're going to be renovating how policies are defined and +configured in the API Manager UI. But until then, you can refer to this blog +post for an overview of how to configure Authorization! + + + +I won't bury the lead - the key to getting Authorization to work is understanding +that it *only* works together with Authentication. First you must add and +configure a compatible *Authentication* policy, which will be responsible for +extracting the user's roles and passing them along to the Authorization policy. + +## Define your terms, sir! +Let's make sure we're on the same page with respect to terminology, shall we? + +* **Authentication**: the act of validating that a user is who she claims to be, by checking provided credentials against some source of identity. Examples include BASIC Authentication and OAuth2. +* **Authorization**: the act of ensuring that the authenticated user has *permission* to perform the requested action or view the requested data. Typically involves checking that the user possesses one or more required roles. + +## How does this work in apiman? + +I'm glad you asked. In apiman we have split these two functions out into separate policies. This allows us to use the same Authorization policy regardless of what type of Authentication is being used. + +Basically you need to do the following two things: + +1. Add and configure an Authentication policy such as the BASIC Authentication Policy or the Keycloak OAuth2 Authentication Policy +1. Add and configure an Authorization Policy. + +That's it in a nutshell! + +## Give me more details! + +OK, OK. If you're reading this you probably know the apiman basics - how to create Organizations and APIs and whatnot. If not, I would recommend you check out the [User Guide](http://www.apiman.io/latest/user-guide.html) or the [Tutorials](http://www.apiman.io/latest/tutorials.html). + +Once you have an API that you want to configure, go ahead and add a new policy. Choose, for example, the *BASIC Authentication Policy* and configure it as seen in the following screenshot: + +![Example BASIC Authentication configuration](/blog/images/2015-05-08/basic-auth-config.png) + +Once you've added that policy, you can add the Authorization Policy - make sure they are in the proper order, since the Authentication policy must execute first. Configure the Authorization Policy however you like, using roles appropriate for your users. For example, it might look like this: + +![Example Authorization configuration](/blog/images/2015-05-08/authorization-config.png) + +Once all is said and done, you should have two (at least) policies configured for your API. It might look something like this in the UI: + +![Example policy list](/blog/images/2015-05-08/auth-policies.png) + +If you follow those steps, everything should work out alright for you! The Authorization Policy is capable of being quite fine-grained. You can configure role based access via custom resource location regular expressions and HTTP verb(s). If all you want is a global required role to access your API, that's easy too: + +* **Resource Path**: /.* +* **Verb/action**: * +* **Required Role**: + +Good luck and come find us on the mailing list or IRC if you have any trouble! + +/post diff --git a/_blog-src/_posts/2015-05-08-authorization.markdown b/_blog-src/_posts/2015-05-08-authorization.markdown index 04896820a..4e01146b5 100644 --- a/_blog-src/_posts/2015-05-08-authorization.markdown +++ b/_blog-src/_posts/2015-05-08-authorization.markdown @@ -4,7 +4,9 @@ title: "Authorization: good god, what is it good for?" date: 2015-05-08 13:15:15 author: eric_wittmann categories: authorization authentication policy +newUrl: 2015-05-08-authorization-redux --- + Quite a bit, actually. :) I want to talk about how Authorization currently works in apiman, because it's diff --git a/_blog-src/_posts/2015-05-09-policy-testing-redux.markdown b/_blog-src/_posts/2015-05-09-policy-testing-redux.markdown new file mode 100644 index 000000000..5366e65bd --- /dev/null +++ b/_blog-src/_posts/2015-05-09-policy-testing-redux.markdown @@ -0,0 +1,205 @@ +--- +layout: post +title: "A great way to test your custom apiman policy!" +date: 2015-05-09 09:07:45 +author: eric_wittmann +categories: policy junit testing +newUrl: 2015-05-09-policy-testing +--- + +If you have tried creating your own custom apiman policy, you may have had a little bit of +difficulty creating useful junit tests for it. Many policies require various apiman +runtime components to be available. It can be super annoying trying to use something like +mockito to create mock versions of everything your policy needs. Even for simple policies +you really just want a quick and effective way to test the implementation within a +reasonably "real world" harness. + +Well you've probably guessed by now that I'm about to show you how it's done! (OK fine, +how it *will* be done in the next release of apiman - 1.1.3.Final) + + + +In this post I'll explain (and show!) you how to write a unit test for your apiman +policy, using the new Policy Tester junit framework we've created. + +## First you need a custom policy! + +If you haven't created a custom apiman policy yet, have a look at the +[Developer Guide](http://www.apiman.io/latest/developer-guide.html#_plugins) to +learn how. + +So for example, let's say you've created your own simple custom policy class and it +looks like this: + +{% highlight java %} +public class MySimplePolicy implements IPolicy { + + @Override + public Object parseConfiguration(String jsonConfiguration) throws ConfigurationParseException { + return jsonConfiguration; + } + + @Override + public void apply(ApiRequest request, IPolicyContext context, Object config, + IPolicyChain chain) { + request.getHeaders().put("X-MTP-Header", "Hello World"); + if (request.getHeaders().get("X-Fail-Test") != null) { + IPolicyFailureFactoryComponent failureFactory = context.getComponent(IPolicyFailureFactoryComponent.class); + chain.doFailure(failureFactory.createFailure(PolicyFailureType.Other, 42, "Failure")); + } else { + chain.doApply(request); + } + } + + @Override + public void apply(ApiResponse response, IPolicyContext context, Object config, + IPolicyChain chain) { + response.getHeaders().put("X-MTP-Response-Header", "Goodbye World"); + chain.doApply(response); + } +} +{% endhighlight %} + +## OK I've got a policy, how do I test it? + +Now that you've got your policy, you need a quick and effective way to test it. I also +think it's important for your test to run quickly and for you to be able to easily set +breakpoints to debug the code. We explored using [Arquillian](http://arquillian.org/) +to configure and publish an API with the custom policy to a running WildFly server. +It actually works remarkably well, but the overhead of firing up a WildFly server just +to test a single policy seemed excessive. That work will likely lead into a separate +testing effort focused on testing larger integration scenarios. + +OK enough - let's get to the test! The first thing you need is to pull the Policy +Tester dependency into your project's pom.xml: + +{% highlight xml %} + + io.apiman + apiman-test-policies + 1.1.2-SNAPSHOT + test + +{% endhighlight %} + +Great - now just create a new junit test and make sure it extends the `ApimanPolicyTest` +base test class. In that junit test you'll need to sprinkle in a few annotations +provided by the apiman Policy Testing framework. At a minimum you will need to +include the `@TestingPolicy` and `@Configuration` annotations. Both of these annotations +can be specified at either the *Class* or *Method* level. The former tells the testing +framework which policy is being tested. The latter describes the policy configuration +that should be used for the test. + +Just look at the example, already: + +{% highlight java %} +@TestingPolicy(MySimplePolicy.class) +public class MyTestPolicyTest1 extends ApimanPolicyTest { + + @Test + @Configuration("{}") + public void testGet() throws Throwable { + // Send a test HTTP request to the API (resulting in executing the policy). + PolicyTestResponse response = send(PolicyTestRequest.build(PolicyTestRequestType.GET, "/some/resource") + .header("X-Test-Name", "testGet")); + + // Now do some assertions on the result! + Assert.assertEquals(200, response.code()); + EchoResponse entity = response.entity(EchoResponse.class); + Assert.assertEquals("GET", entity.getMethod()); + Assert.assertEquals("/some/resource", entity.getResource()); + Assert.assertEquals("testGet", entity.getHeaders().get("X-Test-Name")); + // Assert the request header that was added by the policy + Assert.assertEquals("Hello World", entity.getHeaders().get("X-MTP-Header")); + // Assert the response header was added by the policy + Assert.assertEquals("Goodbye World", response.header("X-MTP-Response-Header")); + } + +} +{% endhighlight %} + +## So what's going on here? + +Let me tell you! For each test method in your junit test, we'll actually spin up a fully +functional apiman API Gateway. We'll also publish a test API that's configured with +your custom policy (and using the policy configuration you specified in the `@Configuration` +annotation). After that, it's a simple matter of sending one or more simulated HTTP +requests to the gateway. You do that by sending a `PolicyTestRequest` to the `send` method. +Easy peasy! + +Note that it's pretty easy to create a `PolicyTestRequest` - there's a nice little fluent +builder you can use to create it. The builder allows you to set the HTTP verb, the resource +path, and any HTTP headers. + +## What about the back-end API? + +Yeah that's a good point. Assuming your policy doesn't produce a failure, the API Gateway +we're using for the test needs to "invoke" a back-end API and return the result. We +simulate this rather than actually going out and making a REST request. By default, we +create a simple Echo back-end API which bundles up all the information in the REST +request (including anything your policy may have added to the request) and builds a JSON +response that includes all that information. This is handy because it allows you to +verify that, for example, any HTTP headers your policy added to the request actually +made it through to the back-end API. + +Now are you ready for an advanced topic? If not I understand, you can just hit the Back +button on your browser! + +Still here? Great! Another thing you can do is actually provide your own simulated +back-end API. This is necessary sometimes when your policy does something +specific with, for example, the API response payload. You may actually need your +test to respond in a certain way. To accomplish this all you need to do is use the +`@BackEndApi` annotation, providing a *Class* that implements the +`IPolicyTestBackEndApi` interface. You do that, and we'll use your simulated +back end API for the test instead of the echo API! :) + +What would that look like? Something like this: + +{% highlight java %} +@TestingPolicy(MySimplePolicy.class) +public class MyTestPolicyTest1 extends ApimanPolicyTest { + + @Test + @Configuration("{}") + @BackEndApi(MyCustomBackEndApiImpl.class) + public void testGet() throws Throwable { + // Send a test HTTP request to the API (resulting in executing the policy). + PolicyTestResponse response = send(PolicyTestRequest.build(PolicyTestRequestType.GET, "/some/resource") + .header("X-Test-Name", "testGet")); + + // Now do some assertions on the result! + MyCustomBackEndApiResponseBean entity = response.entity(MyCustomBackEndApiResponseBean.class); + + // Do some more assertions here using the entity from above! + } + +} +{% endhighlight %} + +And then perhaps your custom back end implementation class might look like this: + +{% highlight java %} + +public class MyCustomBackEndApiImpl implements IPolicyTestBackEndApi { + @Override + public PolicyTestBackEndApiResponse invoke(ApiRequest request, byte[] requestBody) { + // Create a valid API response for this request, and then configure it. + ApiResponse apiResponse = new ApiResponse(); + apiResponse.setCode(200); + apiResponse.setMessage("OK"); + apiResponse.getHeaders().put("Date", new Date().toString()); + apiResponse.getHeaders().put("Server", "apiman.policy-test"); + apiResponse.getHeaders().put("Content-Type", "text/plain"); + // Let's respond with a classic "Hello World" for the response body + String body = "Hello World"; + PolicyTestBackEndApiResponse response = new PolicyTestBackEndApiResponse(apiResponse, body); + return response; + } +} + +{% endhighlight %} + + +Alright - if you made it this far thanks for reading!! + +/post diff --git a/_blog-src/_posts/2015-05-09-policy-testing.markdown b/_blog-src/_posts/2015-05-09-policy-testing.markdown index ed607fb92..54e65030f 100644 --- a/_blog-src/_posts/2015-05-09-policy-testing.markdown +++ b/_blog-src/_posts/2015-05-09-policy-testing.markdown @@ -4,7 +4,9 @@ title: "A great way to test your custom apiman policy!" date: 2015-05-09 09:07:45 author: eric_wittmann categories: policy junit testing +newUrl: 2015-05-09-policy-testing-redux --- + If you have tried creating your own custom apiman policy, you may have had a little bit of difficulty creating useful junit tests for it. Many policies require various apiman runtime components to be available. It can be super annoying trying to use something like diff --git a/_blog-src/_posts/2015-05-19-rest-api-redux.markdown b/_blog-src/_posts/2015-05-19-rest-api-redux.markdown new file mode 100644 index 000000000..c6c20b6de --- /dev/null +++ b/_blog-src/_posts/2015-05-19-rest-api-redux.markdown @@ -0,0 +1,209 @@ +--- +layout: post +title: "The JBoss apiman API Manager REST API" +date: 2015-05-19 11:00:00 +author: len_dimaggio +categories: rest api automation +oldUrl: 2015-05-19-rest-api +--- + +In this, the third article in our series on apiman, JBoss' new open source API Management framework, we'll examine apiman’s API Manager REST API. apiman’s Management UI utilizes this API in the implementation for all of its user-visible features, and you can also use the same API to automate tasks with apiman. + + + +## Introduction + + It's inevitable that, after you work with a product's UI for a while that you encounter tasks that are better suited to a scripting or batch interface. For example, if you have to perform a similar task for a large of related data items, the time that it can require to perform these tasks through an interactive UI can be prohibitive. Also, it's easy for repetitive tasks to become error prone as you can lose focus, even if you are working in a well designed and easy to use interface such as apiman. + +One solution to this problem is to augment the UI with a command line or scripting interface. This can lead to a whole separate set of issues if the new interface is built on a different set of underlying routines than the UI. A better approach to allow access to the same routines in which the UI is constructed. This approach removes any duplication, and also enables you to replicate manual UI based tasks with automated or scripted tools. + +JBoss apiman follows this second approach with its REST interface. All the services provided by apiman in its Management UI are directly supported in the API Manager REST API. You can also directly access these same services through the REST API. + +## Prerequisites + +Like a lot of things with JBoss open source software, installing the REST API is easy. In fact, if you have apiman installed, then you already have the REST API installed. (You can’t get much easier than that!) + +We covered installing apiman in the first article in this series (see: http://java.dzone.com/articles/impatient-new-users), so we won't repeat that information here. A minimal set of install instructions are always available on the apiman site (http://www.apiman.io/latest/). The current set of instructions as of this writing are: + +{% highlight bash %} +mkdir ~/apiman-1.1.2.Final +cd ~/apiman-1.1.2.Final +wget http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip +wget http://downloads.jboss.org/apiman/1.1.2.Final/apiman-distro-wildfly8-1.1.2.Final-overlay.zip +unzip wildfly-8.2.0.Final.zip +unzip -o apiman-distro-wildfly8-1.1.2.Final-overlay.zip -d wildfly-8.2.0.Final +cd wildfly-8.2.0.Final +./bin/standalone.sh -c standalone-apiman.xml +{% endhighlight %} + +Now that our apiman server is up and running, we can start to access the API Manager REST API. However, before we start placing calls to APIs through the REST API, let’s take a look at how the API is organized. + +##The Organization of the API + +The documentation for the apiman REST API is available (for free, of course), here: http://www.apiman.io/latest/api-manager-restdocs.html + +The services and their endpoints represented in the API are divided into these groups: + +* actions - The actions endpoint (http://localhost:8080/apiman/actions/) enables you to execute actions for apiman entities (such as plans, APIs, applications, etc.) + +* system/status - The system/status endpoint (http://localhost:8080/apiman/system/status) enables you to query the current state of the apiman system. + +* currentuser - The currentuser endpoint (http://localhost:8080/apiman/currentuser/info) enables you to obtain or update information about the current user. This information is related to the user’s applications, APIs, organizations, etc. + +* gateways - The gateways endpoint (http://localhost:8080/apiman/gateways/) enables you to obtain information about an API Gateway, and to delete or create new gateways. + +* organizations - The organizations endpoint (http://localhost:8080/apiman/organizations/) enables you to obtain information about existing organizations and to create new organizations. + +* permissions - The permissions endpoint (http://localhost:8080/apiman/permissions/) enables you to obtain information about user’s permissions. + +* plugins - The plugins endpoint (http://localhost:8080/apiman/plugins/) enables you to obtain information about installed plugins, and to install new plugins. + +* policyDefs - The policyDefs endpoint (http://localhost:8080/apiman/policyDefs/) enables you to obtain information about existing policy definitions, and to define new policy definitions. + +* roles - The roles endpoint (http://localhost:8080/apiman/roles/) enables you to obtain information about existing roles, update roles, and delete roles. + +* search - The search endpoint (http://localhost:8080/apiman/search/) enables you to search for applications, organizations, or APIs. + +* users - The users endpoint (http://localhost:8080/apiman/users/) enables you to search for information about users, including their applications and APIs. + +Within each group, GET operations are defined to return information, and GET and POST operations are defined to make changes to apiman elements. Data passed to and returned from services through the API is in the form of JSON along with a return code. + +##Accessing APIs in the API Manager REST API + + The best way to learn about the API Manager REST API is to see it in action. Since these are REST APIs, it’s easy to access them. For example, we should be able to access the system status service with a simple GET operation at this endpoint: + +http://localhost:8080/apiman/system/status + +Let’s try this with curl. If we execute the following command, we should see the current system status: + + curl -X GET http://localhost:8080/apiman/system/status + +Well, that error is not exactly what we expected. There was no output. + +What went wrong? What’s missing? The answer is that our call to the API was missing authorization. In the same way that a user must login and be authorized to use the apiman Management UI, calls to the REST API must be authorized. + +For our example, we’ll keep things simple and stick to using basic authorization. (We’ll take a more extensive look at apiman and security in a later article in this series.) + +In order to resolve this failure, we have to send a properly encoded basic authorization header with every request you make. In Java8, we can generate a key by base64 encoding this string for the OOTB admin username and password: admin:admin123! with this statememt: + + base64encode(concat('admin', ':', 'admin123!')) + +This yields a key with a value of: YWRtaW46YWRtaW4xMjMh + +Now, let’s try that curl command again, but this time, we’ll include the key in the authorization header: + + $ curl -H "Authorization: Basic YWRtaW46YWRtaW4xMjMh" + http://localhost:8080/apiman/system/status + +And the result is: + + {"up":true,"version":"1.1.2-SNAPSHOT"} + +As we mentioned earlier in this article, the responses returned by calls to the REST API are in in the form of JSON. In the case of our call to the http://localhost:8080/apiman/system/status endpoint, the expected format of the response is: + +{% highlight json %} +{ + version : string + up : boolean +} +{% endhighlight %} + +Let’s carry on by looking at a more extensive example, where we use the REST API to automate a task that would be tedious if performed in the apiman Management UI. + +##A Larger Example + +Let’s say that you want to create multiple new organizations. You could of course manually enter these into the apiman Management UI. But, if you have a large number of organizations, for example, one for each of the countries in the EU, or each of the states in the USA, this would be a tedious and error prone task. This is an ideal candidate task for automation with the REST API. + +The coding for this example is simple. All you have to do is account for the encoding of the authorization to access the API Manager REST API, and pass the information related to each organization that you create to this endpoint: http://localhost:8080/apiman/organizations + +Here’s an example program with an ice hockey flavor - the highlights are noted below: + +{% highlight java linenos %} +package apimanExample; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.Base64; + +public class SimplePutOrg { + + public static void main(String[] args) throws Exception { + + String [ ] [ ] originalSix = { + { "Boston", "Chicago", "Detroit", "Montreal", "New York", "Toronto"}, + { "Bruins", "BlackHawks", "Red Wings", "Canadiens", "Rangers", "Maple Leafs"} + }; + for (int i = 0; i < 6; i++) { + System.out.println ("Creating new apiman org for: " + originalSix [0][i] + ":" + originalSix [1][i]); + System.out.println ("Return code = " + createNewOrg (originalSix [0][i], originalSix [1][i])); + } + } + + private static int createNewOrg (String newOrgName, String newOrgDescription) throws IOException { + URL url = new URL("http://localhost:8080/apiman/organizations"); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + Base64.Encoder encoder = Base64.getEncoder(); + String normalString = "admin:admin123!"; + String encodedString = encoder.encodeToString(normalString.getBytes(StandardCharsets.UTF_8)); + + connection.setRequestProperty("Authorization", "Basic " + encodedString); + connection.setRequestMethod("POST"); + connection.setDoOutput(true); + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Accept", "application/json"); + + OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream()); + osw.write(String.format("{\"name\":\"" + newOrgName + " a new org\",\"description\":\"" + newOrgDescription + "\"}")); + osw.flush(); + osw.close(); + + return connection.getResponseCode(); + } +} +{% endhighlight %} + +Code highlights: + +* Lines 13-16: Here's where we define the test data. For this example, we'll use the National Hockey League's "original 6" teams. +* Line 24: Here's the URL for the service to which we'll connect to create the new organizations. +* Lines 27-29 - Here's where we set up the encoding for the BASIC authorization. +* Lines 31-35 - And here's where we create the HttpURLConnection that we will use to connect to the service. +* Line 32: Note that we will be performing a POST operation. +* Lines 37-40 - And finally, here's where we connect to the service and send our POST requests to create the new organizations. + +When we run this example, the following output indicates that the calls to the service through the REST API were successful, based on the return code of 200: + + Creating new apiman org for: Boston:Bruins + Return code = 200 + Creating new apiman org for: Chicago:BlackHawks + Return code = 200 + Creating new apiman org for: Detroit:Red Wings + Return code = 200 + Creating new apiman org for: Montreal:Canadiens + Return code = 200 + Creating new apiman org for: New York:Rangers + Return code = 200 + Creating new apiman org for: Toronto:Maple Leafs + Return code = 200 + +And - here’s the server output that tracks the creation of the new organizations: + + 21:17:53,205 INFO [stdout] (default task-19) Created organization Boston a new org: OrganizationBean [id=Bostonaneworg, name=Boston a new org, description=Bruins, createdBy=admin, createdOn=Sun May 17 21:17:53 GMT-05:00 2015, modifiedBy=admin, modifiedOn=Sun May 17 21:17:53 GMT-05:00 2015] + 21:17:53,233 INFO [stdout] (default task-21) Created organization Chicago a new org: OrganizationBean [id=Chicagoaneworg, name=Chicago a new org, description=BlackHawks, createdBy=admin, createdOn=Sun May 17 21:17:53 GMT-05:00 2015, modifiedBy=admin, modifiedOn=Sun May 17 21:17:53 GMT-05:00 2015] + 21:17:53,253 INFO [stdout] (default task-23) Created organization Detroit a new org: OrganizationBean [id=Detroitaneworg, name=Detroit a new org, description=Red Wings, createdBy=admin, createdOn=Sun May 17 21:17:53 GMT-05:00 2015, modifiedBy=admin, modifiedOn=Sun May 17 21:17:53 GMT-05:00 2015] + 21:17:53,275 INFO [stdout] (default task-25) Created organization Montreal a new org: OrganizationBean [id=Montrealaneworg, name=Montreal a new org, description=Canadiens, createdBy=admin, createdOn=Sun May 17 21:17:53 GMT-05:00 2015, modifiedBy=admin, modifiedOn=Sun May 17 21:17:53 GMT-05:00 2015] + 21:17:53,295 INFO [stdout] (default task-27) Created organization New York a new org: OrganizationBean [id=NewYorkaneworg, name=New York a new org, description=Rangers, createdBy=admin, createdOn=Sun May 17 21:17:53 GMT-05:00 2015, modifiedBy=admin, modifiedOn=Sun May 17 21:17:53 GMT-05:00 2015] + 21:17:53,316 INFO [stdout] (default task-29) Created organization Toronto a new org: OrganizationBean [id=Torontoaneworg, name=Toronto a new org, description=Maple Leafs, createdBy=admin, createdOn=Sun May 17 21:17:53 GMT-05:00 2015, modifiedBy=admin, modifiedOn=Sun May 17 21:17:53 GMT-05:00 2015] + +And finally, here are the organizations as displayed in the apiman Management UI: + +![new organizations](/blog/images/2015-05-19/new-organizations.png) + +(It’s been a tough year for Boston Bruins’ fans. It’s nice to see the team listed first, even if it’s just an alphabetic list. ;-) + +##In Conclusion + +The architecture of the apiman Management UI is that the UI is built on top of a REST API. This architecture makes it possible for you to directly access the services exposed by the API, and enables you to automate the tasks that you perform in the UI. diff --git a/_blog-src/_posts/2015-05-19-rest-api.markdown b/_blog-src/_posts/2015-05-19-rest-api.markdown index df4a7c10f..51298a9a9 100644 --- a/_blog-src/_posts/2015-05-19-rest-api.markdown +++ b/_blog-src/_posts/2015-05-19-rest-api.markdown @@ -4,6 +4,7 @@ title: "The JBoss apiman API Manager REST services API" date: 2015-05-19 11:00:00 author: len_dimaggio categories: rest api automation +newUrl: 2015-05-19-rest-api-redux --- In this, the third article in our series on apiman, JBoss' new open source API Management framework, we'll examine apiman’s API Manager REST services API. apiman’s Management UI utilizes this API in the implementation for all of its user-visible features, and you can also use the same API to automate tasks with apiman. diff --git a/_blog-src/_posts/2015-06-02-swagger-redux.markdown b/_blog-src/_posts/2015-06-02-swagger-redux.markdown new file mode 100644 index 000000000..8ce8193cf --- /dev/null +++ b/_blog-src/_posts/2015-06-02-swagger-redux.markdown @@ -0,0 +1,61 @@ +--- +layout: post +title: "We got the moves like swagger!" +date: 2015-06-02 09:04:45 +author: eric_wittmann +categories: api-manager swagger api ui +oldUrl: 2015-06-02-swagger +--- + +One of the weaknesses we've had in apiman until now is that API providers didn't have +any way to document how to consume their APIs. Well that has all changed with version +1.1.3.Final. Now you can upload a Swagger spec document for your API. If you do, +consumers will be able to browse your API documentation directly in the apiman UI. + +I think we can all agree that this is a welcome change and really improves the usability +of the system, particularly from the perspective of the client app developer (aka the +API consumer). + + + +## Adding an API Definition +As an API provider, the only thing you need to do is add an API definition to your +API. This is simple - just navigate to the new "Definition" tab in your API. +There you will be able to copy/paste or drag/drop a Swagger spec. Make sure you set the +definition type to Swagger (JSON), and don't forget to click Save! + +## What is a Swagger spec? +So maybe not everyone knows what Swagger is. Swagger is a way to formally describe a +RESTful API. A Swagger spec is a JSON document that describes everything +about your RESTful API, including (but not limited to): + +* API meta-data such as Name and Description +* Resource Paths and the Operations/Methods they support +* Input/Output types + +For more information I recommend navigating to the [Swagger Project](http://swagger.io/). + +## How does this help my consumers? +Once you've got a Swagger spec created and added to your API, your API +consumers will be able to browse live documentation right from the apiman UI. This +information will be available via a new "View API Definition" link available on +the consumer's "API Details" page (the same page that consumers are shown when +they have searched for an API). Here's an example: + +![API Details](/blog/images/2015-06-02/api-details.png) + +An API consumer can see that there is an API definition they can click on, which +will give them a ton of information about how to use the API. In the future, we +plan to allow consumers to do all sorts of interesting things with the Swagger spec. +For example, we can help consumers generate a client SDK in a variety of languages. +We can also allow them to simulate API calls right from the apiman UI - so they can +see what to expect. But for right now, we simply show live documentation about the +API as described by the Swagger spec definition: + + +![API Definition](/blog/images/2015-06-02/api-definition.png) + + +As always, thanks for making it to the end of my ramblings! + +/post diff --git a/_blog-src/_posts/2015-06-02-swagger.markdown b/_blog-src/_posts/2015-06-02-swagger.markdown index 00b1768dd..d09ff7d10 100644 --- a/_blog-src/_posts/2015-06-02-swagger.markdown +++ b/_blog-src/_posts/2015-06-02-swagger.markdown @@ -3,8 +3,10 @@ layout: post title: "We got the moves like swagger!" date: 2015-06-02 09:04:45 author: eric_wittmann -categories: api-manager swagger service ui +categories: api-manager swagger api ui +newUrl: 2015-06-02-swagger-redux --- + One of the weaknesses we've had in apiman until now is that service providers didn't have any way to document how to consume their services. Well that has all changed with version 1.1.3.Final. Now you can upload a Swagger spec document for your service. If you do, diff --git a/_blog-src/_posts/2015-06-04-dev-environment-redux.markdown b/_blog-src/_posts/2015-06-04-dev-environment-redux.markdown new file mode 100644 index 000000000..d07e73a46 --- /dev/null +++ b/_blog-src/_posts/2015-06-04-dev-environment-redux.markdown @@ -0,0 +1,220 @@ +--- +layout: post +title: "Setting up your apiman development environment" +date: 2015-06-04 09:04:45 +author: eric_wittmann +categories: eclipse development maven +oldUrl: 2015-06-04-dev-environment +--- + +For those of you who might be interested in hacking away at some core apiman code, +I thought it might be nice to create a reasonably comprehensive step-by-step +guide. For the most part everything is straightforward, but there are a copule +of tricks you can use to get up and running fast and to be able to easily +iterate on any changes you make. + +Read on if this sounds like something you want to do! + + + +## What will this post cover? +Here is a high level overview of the steps we'll take to getting a working +apiman development environment. First, here are my basic assumptions: + +* You are a java developer and have JDK7 or higher installed +* You are familiar with maven and have it installed +* You know git and have it installed +* You want to use the Eclipse IDE + +Assuming you meet all of the above requirements, you should have no trouble +with this guide! Here is what this post will cover: + +1. Getting the apiman source code +2. Downloading and running Eclipse +3. Configuring Eclipse for apiman development +4. Importing the apiman source code into Eclipse +5. Running Development versions of the apiman components + +## Getting the apiman source code +The first thing you (obviously) need to do is download the apiman project +source code. All of the code is in github, of course. You can find the +code here: + +[https://github.com/apiman/apiman](https://github.com/apiman/apiman) + +The 'apiman' github organization has a couple of additional repositories as +well. For example the quickstarts and plugins each have their own repos. +But let's stick with the core code for this post. + +If you want to follow best practice, you should "fork" the apiman repository +on github, then clone your forked copy. Once you have used the github UI +to fork the repository, you would do something like this: + +{% highlight text %} +git clone git@github.com:/apiman.git +{% endhighlight %} + +I also recommend adding the upstream github repository as another remote +so that you can easily pull in upstream changes: + +{% highlight text %} +git remote add upstream git@github.com:apiman/apiman.git +{% endhighlight %} + +## Downloading and running Eclipse +Alright - you've got the apiman code cloned on your local hard drive +somewhere. The next step is to download Eclipse (if you don't already +have it installed). This can be done here: + +[http://www.eclipse.org/downloads/](http://www.eclipse.org/downloads/) + +I like to download the "Eclipse IDE for Java EE Developers" version +because it comes with a lot of extra stuff I like to use. But you should +be fine with the basic version as well. I'm going to use the EE version +as I write this guide! + +Once you've completed the download, just unpack it and run Eclipse. + +![Fresh Eclipse](/blog/images/2015-06-04/eclipse-fresh.png) + +## Configuring Eclipse for apiman development +Great! You've got Eclipse running. Now let's make a minor change +to it specific to apiman development. Go ahead and import the apiman code +formatter specification. You can find this file in the apiman code +repository here: + +{% highlight text %} +apiman/tools/src/eclipse/apiman-eclipse-formatter.xml +{% endhighlight %} + +Import that file in the Eclipse Preferences dialog here: + +![Eclipse Preferences](/blog/images/2015-06-04/eclipse-formatter.png) + +## Importing the apiman source code into Eclipse +OK now we're ready to import the apiman source code into Eclipse. Because +apiman uses maven as its build system, and because Eclipse has maven support +built-in via m2e, this should be a snap. Simply go to *File->Import* and +choose *Maven/Existing Maven Projects*: + +![Import apiman](/blog/images/2015-06-04/import-apiman.png) + +![Import apiman Confirm](/blog/images/2015-06-04/import-apiman-2.png) + +Importing the projects into Eclipse may take some time, and Eclipse may +yell at you about unresolved m2e plugins and whatnot. Make sensible choices +(e.g. resolve later) and go about your life. Go get a cup of coffee, the +build will probably take a few minutes. + +It is possible you will run into a problem where the *apiman-manager-ui-hawtio* +project gets into a build loop. This can be corrected by disabling the +maven builder for that one project only. Do this by right-click on that +project and choosing properties: + +![Project Properties](/blog/images/2015-06-04/project-properties.png) + +Typically this will leave you with a bunch of annoying warnings in Eclipse, +most of which will be HTML Problems. I will leave it as an exercise to the +reader about how to disable those. + +IMPORTANT: you should have 0 java errors at this point! + +## Running Development versions of the apiman components +Everything should now be loaded into Eclipse. Now all you need is a quick +way to run everything. Of course you can *always* do a full rebuild via +maven and use the "install-all-wildfly8" profile: + +{% highlight text %} +cd ~/git/apiman +mvn clean install -Pinstall-all-wildfly8 +{% endhighlight %} + +That will result in a full apiman environment installed in WildFly 8. If you +use this approach you can run apiman here: + +{% highlight text %} +cd ~/git/apiman/tools/server-all/target/wildfly-8.2.0.Final +./bin/standalone.sh --debug +{% endhighlight %} + +Then you can connect a remote debugger to WildFly and debug apiman from Eclipse. + +But a quicker way to run the various apiman components exists. + +As you may or may not know, apiman consists of two components: + +* The API Manager (RESTful APIs + UI) +* The API Gateway + +You can run/test these pieces together or separately. Let's first explore +the API Manager. + +### Launching a Dev version of the API Manager REST APIs +This is actually really easy: + +1. Open up the java class *ManagerApiDevServer* +2. Debug As->Java Application + +Easy as that! It should fire up an instance of Jetty with the apiman API +Manager backend (RESTful APIs) deployed. You can test this by going +here: + +[http://localhost:7070/apiman/system/status](http://localhost:7070/apiman/system/status) + +Log in using username *admin* and password *admin*. Oh by the way, did I mention +that it runs on port 7070? That's important! + +### Using gulp to make UI changes +We use angularjs and typescript as the basis for the UI. In order to develop +UI code you'll need to use gulp. We have documented how to do this here: + +[https://github.com/apiman/apiman/blob/master/manager/ui/hawtio/README.md](https://github.com/apiman/apiman/blob/master/manager/ui/hawtio/README.md) + +Give that a quick read! When it asks you to configure your new copy of the +config.js file, it should look like this: + +{% highlight json %} +var APIMAN_CONFIG_DATA = { + "apiman" : { + "version" : "1.1.0-SNAPSHOT", + "builtOn" : "2015-01-01", + "logoutUrl" : "logout" + }, + "user" : { + "username" : "admin" + }, + "ui" : { + "header" : true + }, + "api" : { + "endpoint" : "http://localhost:7070/apiman", + "auth" : { + "type" : "basic", + "basic" : { + "username" : "admin", + "password" : "admin" + } + } + } +}; +{% endhighlight %} + +If you get it all set up properly you should be able to point your browser here: + +[http://localhost:2772/api-manager/dash](http://localhost:2772/api-manager/dash) + +Now whenever you make changes to any of the apiman angularjs code, the browser +will automatically refresh and show you the changes! + +### Launching a dev version of the API Gateway +This one is easy as well. Just open up the *GatewayDevServer* java class +and debug it as an application (just like the API Manager above!)... + + +## Wrapup +Whew! That took longer than I thought. Please let me know if you run into +any snags. There are probably lots of improvements you could explore, such as +using JRebel to never have to restart the API Manager or API Gateway java +processes again. + +/post diff --git a/_blog-src/_posts/2015-06-04-dev-environment.markdown b/_blog-src/_posts/2015-06-04-dev-environment.markdown index 200faf0a2..84c46a1f1 100644 --- a/_blog-src/_posts/2015-06-04-dev-environment.markdown +++ b/_blog-src/_posts/2015-06-04-dev-environment.markdown @@ -4,7 +4,9 @@ title: "Setting up your apiman development environment" date: 2015-06-04 09:04:45 author: eric_wittmann categories: eclipse development maven +newUrl: 2015-06-04-dev-environment-redux --- + For those of you who might be interested in hacking away at some core apiman code, I thought it might be nice to create a reasonably comprehensive step-by-step guide. For the most part everything is straightforward, but there are a copule diff --git a/_blog-src/_posts/2015-06-11-basic-auth-redux.markdown b/_blog-src/_posts/2015-06-11-basic-auth-redux.markdown new file mode 100644 index 000000000..7a086116f --- /dev/null +++ b/_blog-src/_posts/2015-06-11-basic-auth-redux.markdown @@ -0,0 +1,155 @@ +--- +layout: post +title: "Adding a BASIC Authentication Policy to a Managed API in JBoss apiman" +date: 2015-06-11 11:00:00 +author: len_dimaggio +categories: authentication policy +oldUrl: 2015-06-11-basic-auth-redux +--- + +![apiman logo](/blog/images/2015-06-11/1-apiman_logo.png) + +In this, the fourth article in the series on apiman, JBoss' new API Management framework, we'll examine how apiman enables you to not just manage APIs, but implement a layer of security to the APIs by adding an authentication requirement when client apps access a managed API. + + + +## Securing Client App Access to your Managed APIs + + As we've seen in the previous articles in this series, apiman enables you to govern the usage of the APIs that it manages by defining policies in the Managament UI that are then applied at runtime by the API Gateway. The apiman API Gateway applies the policy rules that you define to requests that it proxies to the managed API: + +![apiman logo](/blog/images/2015-06-11/apiman-2.png) + +The OOTB policies that are packaged with apiman enable you to apply a variety of types of controls, including rate limiting (where access to an API is assigned a usage threshold) and black/whitelisting by IP address (where the client app's IP address governs their access to the API). + + However, managing an API with apiman does not automatically make that API secure. Happily, however, apiman provides a policy that enables you to easily set up authentication to control access to your managed API. (Note that this policy governs the client apps' authenticated access to the managed API, and not establishing a secure connection where apiman authenticates the back-end APIs. In other words, in this article, we're interested in adding authentication between the blue and pink boxes in the above diagram.) + +## Adding a BASIC Authentication Policy to a Managed API + + apiman is packaged with multiple pre-configured policies: + +* Authorization - Access to APIs' resources is controlled by user roles. +* BASIC Authentication - A username/password is required to access an API. +* Ignored Resources - Paths to APIs' resources that will not be accessible. Requests to these API resource paths return a 404 (not found) error. +* IP Blacklist - Client apps with specific IP address will be blocked from accessing an API. +* IP Whitelist - And, client apps with specific IP address will not be blocked from accessing an API. +* Rate Limiting - Access to an API is limited by the number of requests in a defined time period. We demonstrated an example of a rate limiting policy in the first article in this series. + + We're interested in the BASIC Authentication Policy. Let's take a closer look. The dialog to add a BASIC authentication policy to an API looks like this: + +![apiman logo](/blog/images/2015-06-11/apiman-3.png) + +In creating the BASIC policy, we define an Authentication Realm (think of this as an area to be protected, within which usernames and passwords exist) and an optional HTTP header. The optional HTTP header is used to optionally pass the user's principal to the back-end API through an HTTP header. This is useful if the back-end system needs to know the username of the user calling it (e.g. to do user-specific operation). The "Transport security required" checkbox, if enabled, will cause the policy to fail if a client app tries to connect to the API over http. The Policy will only accept credentials over https. + + We'll keep the Identity Source simple and select "Static Identities" and then define a user. Note that while this static approach is fine for testing purposes, you will want use one of the other Identity Source options (JBDS or LDAP) for a production environment as they can better handle a large number of users. + + ![apiman logo](/blog/images/2015-06-11/apiman-4.png) + +It's important to remember that, in BASIC authentication, one of the factors that makes this, well, basic in nature, is that the username/password that you define are encoded (this is unencrypted base64 encoded text) when they are sent to the server. Since the text is not encrypted, it's at risk of being copied and then used in an attack. For this reason, it's safer to select the transport security option to configure SSL encryption. + + To illustrate, here's Java code that can encode and then decode the username:password string: + +{% highlight bash %} + Base64.Encoder encoder = Base64.getEncoder(); + String normalString = "user1" + ":" + "password1"; + String encodedString = encoder.encodeToString(normalString.getBytes(StandardCharsets.UTF_8)); + System.out.println ("The encoded string is: " + encodedString); + + Decoder decoder = Base64.getDecoder(); + byte[] unencodedStringArray = decoder.decode(encodedString); + String unencodedString = new String (unencodedStringArray); + System.out.println ("The unencoded string is: " + unencodedString); + + The encoded string is: dXNlcjE6cGFzc3dvcmQx + The unencoded string is: user1:password1 +{% endhighlight %} + + So - unlike encrypted strings, your encoded username and password strings are not secure! + + ## When a Request is made to the API + +It's interesting to see step-by-step what happens when a request is made to the API and the BASIC authentication policy is applied. Let's take a look at the request and the responses. I used the "HttpFox" http analyzer (https://addons.mozilla.org/en-us/firefox/addon/httpfox/) to "listen in" on the requests sent to the server and the responses sent back. + + Here's the first request made to the API, notice that a username/password is not included. + +{% highlight bash %} + (Request-Line) GET /apiman-gateway/apiProducerOrg/echossl/1.0?apikey=6f8784cd-5754-47b0-9b8b-b2eb8c5b190f HTTP/1.1 + Host localhost:8443 + User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0 + Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + Accept-Language en-US,en;q=0.5 + Accept-Encoding gzip, deflate + Cookie __utma=111872281.1348865079.1409020839.1411395889.1419258109.7; __utmz=111872281.1409020839.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); s_fid=72CCAD206D09146C-233B60F47DBEA290 + Connection keep-alive +{% endhighlight %} + +The response, as we expected, shows that the request has triggered an authentication failure. This is due to the authentication requirement that we defined and is being applied by the API Gateway. Note the 401 error code and the reference to BASIC authentication: + +{% highlight bash %} + (Status-Line) HTTP/1.1 401 Unauthorized + X-Powered-By Undertow/1 + Server WildFly/8 + X-Policy-Failure-Type Authentication + Date Wed, 03 Jun 2015 13:43:26 GMT + Connection keep-alive + WWW-Authenticate BASIC realm="myRealm" + X-Policy-Failure-Code 10004 + Content-Type application/json + Content-Length 165 + X-Policy-Failure-Message BASIC authentication failed. +{% endhighlight %} + +The browser then automatically pops up a dialog for us to enter the username and password: + +![apiman logo](/blog/images/2015-06-11/apiman-5.png) + + + A request is then sent that includes the username and password encoded into a string. In this request, the encoded (but not encrypted) username and password are included: + +{% highlight bash %} + (Request-Line) GET /apiman-gateway/apiProducerOrg/echossl/1.0?apikey=6f8784cd-5754-47b0-9b8b-b2eb8c5b190f HTTP/1.1 + Host localhost:8443 + User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0 + Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + Accept-Language en-US,en;q=0.5 + Accept-Encoding gzip, deflate + Cookie __utma=111872281.1348865079.1409020839.1411395889.1419258109.7; __utmz=111872281.1409020839.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); s_fid=72CCAD206D09146C-233B60F47DBEA290 + Connection keep-alive + Authorization Basic dXNlcjE6cGFzc3dvcmQx +{% endhighlight %} + +And, then we get the successful return code of 200 in a response: + +{% highlight bash %} + (Status-Line) HTTP/1.1 200 OK + Connection keep-alive + X-Powered-By Undertow/1 + Server WildFly/8 + Content-Length 755 + Content-Type application/json + Date Wed, 03 Jun 2015 13:43:34 GMT + {% endhighlight %} + +## In Conclusion + + Just because an API is managed doesn't automatically make it secure. JBoss apiman provides you with multiple options to add an authentication requirement when client apps access your managed API. + +## Author's Acknowledgements + + As always, the author would like to acknowledge Eric Wittmann and the apiman team for their review comments and suggestions on writing this post, and for adding new features to apiman! + +## Links + +apiman + +* http://www.apiman.io + +Previous articles in this series: + +* http://java.dzone.com/articles/impatient-new-users +* http://java.dzone.com/articles/customizing-jboss-apiman +* http://java.dzone.com/articles/jboss-apiman-api-manager-rest + +HTTP Authentication: Basic and Digest Access Authentication + +* http://tools.ietf.org/html/rfc2617 + diff --git a/_blog-src/_posts/2015-06-11-basic-auth.markdown b/_blog-src/_posts/2015-06-11-basic-auth.markdown index 73fb8de12..94cb4de6a 100644 --- a/_blog-src/_posts/2015-06-11-basic-auth.markdown +++ b/_blog-src/_posts/2015-06-11-basic-auth.markdown @@ -4,6 +4,7 @@ title: "Adding a BASIC Authentication Policy to a Managed Service in JBoss apim date: 2015-06-11 11:00:00 author: len_dimaggio categories: authentication policy +newUrl: 2015-06-11-basic-auth --- ![apiman logo](/blog/images/2015-06-11/1-apiman_logo.png) diff --git a/_blog-src/_posts/2015-07-06-metrics-redux.markdown b/_blog-src/_posts/2015-07-06-metrics-redux.markdown new file mode 100644 index 000000000..530e75aa8 --- /dev/null +++ b/_blog-src/_posts/2015-07-06-metrics-redux.markdown @@ -0,0 +1,132 @@ +--- +layout: post +title: "At long last, Metrics R Us!" +date: 2015-07-06 15:10:22 +author: eric_wittmann +categories: api-manager api ui metrics +oldUrl: 2015-07-06-metrics +--- + +A core feature of any good API Management solution is the recording of and reporting on +interesting metrics related to API requests. Because apiman acts as a central Gateway +for all managed API traffic, it is the perfect location to record information about each +and every request. This allows it to report on interesting data it has recorded, related +to response times, successful vs. failed requests, total number of requests broken down +by time, consumer id, or plan used. As you can imagine, this is extremely valuable +information and it is a bit embarrassing that we haven't offered this functionality until +now! + +But that gap is finally filled with version 1.1.4.Final. + + + +## Overview +First let me give you just a high level overview of what this is all about. Every time +the API Gateway gets a request from an API client, it will add a record in the metrics +system with a bunch of interesting fields. These include but are not limited to: + +* Request start and end times +* API start and end times (i.e. just the part of the request taken up by the back end service) +* Resource path +* Response type (success, failure, error) +* API info (org id, id, version) +* Client app info (org id, id, version) + +All of this information is recorded in the metrics storage system so that later on it +can be analyzed/mined for interesting trends. + +In the API Manager, we extract interesting reports from the recorded metrics data and +display it as graphs in the UI (as well as provide the data via a set of metrics +related REST endpoints in the API Manager's own API). + +## How do we store metrics? +Out of the box, apiman stores the metrics information into an elasticsearch index. This +elasticsearch instance is provided as part of the apiman distribution and is enabled and +running by default. If you wish to use a different elasticsearch instance that's of +course no problem - all it requires is some tweaking of settings in the apiman.properties +file. I recommend having a look at the [Installation Guide](http://www.apiman.io/latest/installation-guide.html) +for more details. + +The intention is to support various metrics storage systems, not just elasticsearch. +For example, we have InfluxDB and Hawkular implementations in progres. You can even +implement your own! Custom metrics systems is likely a separate blog post, but note +that *storing* metrics data into an alternate system is easy - simply implement the +*IMetrics* interface: + +{% highlight java %} +package io.apiman.gateway.engine; + +public interface IMetrics { + + /** + * Records the metrics for a single request. Most implementations will likely + * asynchronously process this information. + */ + public void record(RequestMetric metric); + + /** + * Provides the component registry (before any call to {@link #record(RequestMetric)}) + * is made. Metrics can then access HTTP client components, etc. + */ + public void setComponentRegistry(IComponentRegistry registry); +} +{% endhighlight %} + +A little bit of configuration foo in the apiman.properties is all it takes to switch +from elasticsearch to your custom provider. + + +## Metrics data from the API Manager's REST API +There is no way to extract arbitrary metrics information from the metrics source unless +you hit the metrics storage directly. For example, you could use Kibana to directly +view the apiman metrics information stored in elasticsearch. In the future we will +be exploring ways to integrate the data visualization tools that come with each of the +providers we support (elasticsearch, hawkular, influxcb, etc). However, we do provide +a set of REST endpoints you can use to extract common metrics. These REST endpoints are +available as a part of the standard API Manager's REST API. + +Please refer to the [API documentation](http://www.apiman.io/latest/api-manager-restdocs.html) +for the latest information, but at the time of this blog post the available metrics +endpoints are: + +* /organizations//apis//versions//metrics/usage +* /organizations//apis//versions//metrics/appUsage +* /organizations//apis//versions//metrics/planUsage +* /organizations//apis//versions//metrics/responseStats +* /organizations//apis//versions//metrics/summaryResponseStats +* /organizations//apis//versions//metrics/planResponseStats +* /organizations//apis//versions//metrics/appResponseStats + +The 'usage' endpoints return information about the number of requests made. The +'responseStats' endpoints are similar, but are broken down by response type (successful +vs. failed vs. error responses). All endpoints require a time range (from and to). The +*/usage* and */responseStats* endpoints also require a time interval, because they both +return a histogram/time series dataset. + +Sensible limits are enforced on all these endpoints to discourage abuse. For example, +don't ask for a per-minute granularity time series dataset over a ten year data range. +The system won't like that one bit. + + +## Viewing metrics info in the UI +The metrics information provided by the API is also available directly in the API Manager +UI. For any published API, simply navigate to the *Metrics* tab for that API +(in the provider section of the UI). The UI should be pretty easy to use - simply pick +a type of metric you want to see and a pre-configured time period! Here is what the +usage metrics might look like for a typical API: + +![Usage Metrics](/blog/images/2015-07-06/usage-metrics.png) + +And here is what you might expect to find for typical response type metrics: + +![Response Type Metrics](/blog/images/2015-07-06/response-type-metrics.png) + + +## Conclusion +As you can see, this is highly valuable information to have. We only have a couple of +different categories of metrics exposed via the API and UI right now - so this is +your opportunity to come tell us what you'd like to see! Join the apiman metrics +conversation on our [mailing list](https://lists.jboss.org/mailman/listinfo/apiman-user) +or [IRC channel](http://www.apiman.io/latest/chat.html). + +/post diff --git a/_blog-src/_posts/2015-07-06-metrics.markdown b/_blog-src/_posts/2015-07-06-metrics.markdown index c9a2a1df0..cd4b8eb44 100644 --- a/_blog-src/_posts/2015-07-06-metrics.markdown +++ b/_blog-src/_posts/2015-07-06-metrics.markdown @@ -4,7 +4,9 @@ title: "At long last, Metrics R Us!" date: 2015-07-06 15:10:22 author: eric_wittmann categories: api-manager service ui metrics +newUrl: 2015-07-06-metrics-redux --- + A core feature of any good API Management solution is the recording of and reporting on interesting metrics related to API requests. Because apiman acts as a central Gateway for all managed API traffic, it is the perfect location to record information about each diff --git a/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown b/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown new file mode 100644 index 000000000..6106ccb44 --- /dev/null +++ b/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown @@ -0,0 +1,172 @@ +--- +layout: post +title: "Manage Fuse APIs with apiman" +date: 2015-07-07 15:15:15 +author: sbunciak +categories: api management jboss fuse +oldUrl: 2015-07-07-fuse-apis +--- + +This article aims to provide a short guide on how to get API Management capabilities provided by apiman to work with JBoss Fuse, a lightweight, flexible, integration platform that is based on [Apache Camel](http://camel.apache.org), an implementation of many of the most commonly used enterprise integration patterns (EIP). + + + +Creating API provider in JBoss Fuse +==================================== + +The following few steps should quickly get you started with deploying applications into JBoss Fuse. For demonstration purposes I'm using a sample REST application (quickstart) shipped along with Fuse installation. For more information about developing applications for JBoss Fuse inspect the [developer materials](http://www.jboss.org/products/fuse/developer-materials/#!project=fuse) and other [resources](http://www.jboss.org/products/fuse/resources/) at jboss.org. + +### Installation +To obtain a distribution of JBoss Fuse please visit the JBoss Fuse [download page](http://www.jboss.org/products/fuse/download/). +Installation of JBoss Fuse is very simple, as the only thing you need to do is to unzip the distribution, e.g. + +{% highlight sh %} +unzip jboss-fuse-full-6.2.0.redhat-133.zip +{% endhighlight %} + +You might also want to enable the default admin user by uncommenting the last line in `/etc/users.properties`. Without a user configured you won't be able to log into Fuse management console. + +### Server startup + +To start Fuse simply execute the following command from `/bin`: + +{% highlight sh %} +./fuse +{% endhighlight %} + +Once JBoss Fuse is loaded proceed by creating a new Fuse Fabric instance. To do that execute `fabric:create` command from Fuse CLI: + +{% highlight sh %} +JBossFuse:karaf@root> fabric:create +{% endhighlight %} + +After Fuse Fabric is up and running, log into Hawt.io management console, it should be by default available at [http://localhost:8181](http://localhost:8181). +In Fabric perspective, under Containers tabs click on the _Create_ button to open the _Create New Container form_. + +![List of Fabric containers](/blog/images/2015-07-07/fabric.png) + +On the _Create New Container_ page fill in the name you wish to use for your container (e.g. my-rest-container) and be sure to select the 'rest' profile for it. This will ensure that Fabric pickups the REST Quickstart and deploys it to this container. Finish the operation by hitting the _Create and start container_ button. + +![Create Fabric Container](/blog/images/2015-07-07/container.png) + +The container should start automatically right after it has been created and the REST endpoint should become available. If not, select the appropriate container and hit Start. +You can inspect all the APIs deployed to your Fuse Fabric instance by clicking on _APIs_ section under the _APIs_ tab. +Note the _Location_ field - that's the **base url** the for endpoint implementation. We will use it later in the apiman manager. + +![APIs deployed to Fuse Fabric](/blog/images/2015-07-07/apis.png) + +There is a default user preconfigured so you can verify if the application was successfully deployed. It's available at `/customerservice/customers/123` (e.g. [http://localhost:8182/cxf/crm/customerservice/customers/123](http://localhost:8182/cxf/crm/customerservice/customers/123)) + +{% highlight xml %} +[sbunciak@sbunciak ~]$ http http://localhost:8182/cxf/crm/customerservice/customers/123 +HTTP/1.1 200 OK +Content-Type: application/xml +Date: Tue, 07 Jul 2015 22:17:13 GMT +Server: Jetty(8.1.17.v20150415) +Transfer-Encoding: chunked + + + + 123 + John + +{% endhighlight %} + +Configure apiman to manage Fuse endpoint +======================================== + +To install the latest version of apiman follow this [guide](http://www.apiman.io/latest/download.html). The installation process is again very simple, all you need to do is to extract the apiman overlay zip on top of [Wildly 8](http://www.wildfly.org/) server. + +After completing the installation, start apiman by executing the following command from `/bin` folder: + +{% highlight sh %} +./standalone.sh -c standalone-apiman.xml +{% endhighlight %} + +### Quick public API setup + +For demonstration purposes I'll be creating a Public API, however in real life you might want to configure different plans, various contracts, etc. +Please consult the apiman [user guide](http://www.apiman.io/latest/user-guide.html) for more details. + +In order to manage APIs in apiman you need to create a new Organization to which your APIs will belong. +You can do that easily in apiman manager, typically available at: [http://localhost:8080/apimanui](http://localhost:8080/apimanui). + +Once logged into the apiman manager, locate the Organizations sections on the initial page, select _Create a New Organization_ link, provide a name and hit _Create Organization_ button. This will take you to organization details page where you can create a new API by clicking on _New API_ button under _APIs_ tab: + +![Image: Create API](/blog/images/2015-07-07/API.png) + +You will be asked to provide a name and a version for this API. Once the API is successfully created there are few things remaining before you can publish and start using it. +First, you need to provide an implementation base url on the _Implementation_ tab. Use the base URL of the REST Quickstart and save your changes: + +![Image: Provide Endpoint Implementation](/blog/images/2015-07-07/implementation.png) + +Second, you may want to apply some policies to this Public API. To do that, go to the Policies tab and configure a policy of your choice. +I used the Rate Limiting policy to limit usage of this API to 5 per minute: + +![Image: Assign policy](/blog/images/2015-07-07/policy.png) + +Now you are all set to make the API public by checking _Make this API public_ under _Plans_ tab, saving the changes and clicking the _Publish_ button (which should be now enabled). + +![Image: Publish API](/blog/images/2015-07-07/publish.png) + +After you have published the API, have a look at the _Endpoint_ tab to look up the URL to be used to invoke this public API: + +![Image: Managed API Endpoint](/blog/images/2015-07-07/endpoint.png) + +Testing your setup +================== + +Depending on which policy you assinged to the Public API you might experience different behavior. However, if you followed the tutorial and assigned the Rate Limiting policy after reaching the maximum number of allowed requests you will get an output similar to: + +* First request should succeed: + +{% highlight xml %} +[sbunciak@sbunciak ~]$ http https://localhost:8443/apiman-gateway/CustomerOrganization/CrmRestApi/1.0/customerservice/customers/123 --verify=no +HTTP/1.1 200 OK +Connection: keep-alive +Content-Type: application/xml +Date: Tue, 07 Jul 2015 21:01:02 GMT +Server: Jetty(8.1.17.v20150415) +Transfer-Encoding: chunked +X-Powered-By: Undertow/1 +X-RateLimit-Limit: 5 +X-RateLimit-Remaining: 4 +X-RateLimit-Reset: 57 + + + + 123 + John + +{% endhighlight %} + +* Executing 5 consecutive requests should fail with `HTTP 429 Too Many Requests`: + +{% highlight sh %} +[sbunciak@sbunciak ~]$ http https://localhost:8443/apiman-gateway/CustomerOrganization/CrmRestApi/1.0/customerservice/customers/123 --verify=no +HTTP/1.1 429 Too Many Requests +Connection: keep-alive +Content-Length: 176 +Content-Type: application/json +Date: Tue, 07 Jul 2015 21:00:51 GMT +Server: WildFly/8 +X-Policy-Failure-Code: 10005 +X-Policy-Failure-Message: Rate limit exceeded. +X-Policy-Failure-Type: Other +X-Powered-By: Undertow/1 +X-RateLimit-Limit: 5 +X-RateLimit-Remaining: 0 +X-RateLimit-Reset: 8 + +{ + "failureCode": 10005, + "headers": { + "X-RateLimit-Limit": "5", + "X-RateLimit-Remaining": "0", + "X-RateLimit-Reset": "8" + }, + "message": "Rate limit exceeded.", + "responseCode": 429, + "type": "Other" +} +{% endhighlight %} diff --git a/_blog-src/_posts/2015-07-07-fuse-apis.markdown b/_blog-src/_posts/2015-07-07-fuse-apis.markdown index d9355fecf..ef2ea5b67 100644 --- a/_blog-src/_posts/2015-07-07-fuse-apis.markdown +++ b/_blog-src/_posts/2015-07-07-fuse-apis.markdown @@ -4,6 +4,7 @@ title: "Manage Fuse APIs with apiman" date: 2015-07-07 15:15:15 author: sbunciak categories: api management jboss fuse +newUrl: 2015-07-07-fuse-apis-redux --- This article aims to provide a short guide on how to get API Management capabilities provided by apiman to work with JBoss Fuse, a lightweight, flexible, integration platform that is based on [Apache Camel](http://camel.apache.org), an implementation of many of the most commonly used enterprise integration patterns (EIP). diff --git a/_blog-src/_posts/2015-07-24-plugin-components-redux.markdown b/_blog-src/_posts/2015-07-24-plugin-components-redux.markdown new file mode 100644 index 000000000..fb38b7f90 --- /dev/null +++ b/_blog-src/_posts/2015-07-24-plugin-components-redux.markdown @@ -0,0 +1,243 @@ +--- +layout: post +title: "Plugins - Not Just For Policies Anymore" +date: 2015-07-24 14:10:10 +author: eric_wittmann +categories: api-manager api-gateway plugins development maven +oldUrl: 2015-07-24-plugin-components +--- + +As you may know, apiman has long supported custom policies provided by users. If you +aren't familiar with apiman plugins, you can find more about them by [clicking here](http://www.apiman.io/blog/plugins/policies/development/maven/2015/03/06/custom-policies.html). + +As of version 1.1.5.Final, plugins are now even more useful. You can provide custom +implementations of various core apiman system components via plugins. This allows users +to customize apiman easily, without any changes to the classpath and without rebuilding +the core apiman application. + +In this blog post I'll explain how it works. + + + +## Review: What is a plugin? +First, here are some good resources you can use to learn more about apiman plugins: + +* [Customizing JBoss apiman Through Policy Plugins](http://www.apiman.io/blog/plugins/policies/development/maven/2015/03/06/custom-policies.html) +* [apiman Developer Guide: Plugins](http://www.apiman.io/latest/developer-guide.html#_plugins) + +No patience to read those links? That's OK - I'll give you a quick breakdown. + +An apiman plugin is basically a WAR file with one additional required file. The additional +file is `META-INF/apiman/plugin.json` and it contains some meta-data about the plugin. An +example of a plugin.json file (from the JSONP policy plugin): + +{% highlight json %} +{ + "frameworkVersion" : 1.0, + "name" : "JSONP Policy Plugin", + "description" : "This plugin turns an endpoint into a JSONP compatible endpoint.", + "version" : "1.1.5.Final" +} +{% endhighlight %} + +We chose WAR as the plugin format because it allows all of the file types we need, it +is a well-known structure, and it's easy to create (e.g. via maven). + +When contributing a custom apiman component via a plugin, all you need is the `plugin.json` +file and the java class file(s) that implement the appropriate component interface. Of +course, because a plugin is a WAR, you can also include any library dependencies your +component might need. + + +## What are these components are you talking about? +apiman is made up of a number of components that work together to accomplish the goal of +API Management. There are two primary pieces of the apiman story: + +* API Manager +* API Gateway + +Each of these consists of its own components. For example, the API Manager is made up of +the following (not necessarily an exhaustive list): + +* Storage Component +* Query Component +* IDM Component +* Metrics Accessor Component (consumes metrics data) + +On the other hand, the API Gateway consists of a separate set of components, such as: + +* Configuration Registry +* Rate Limiting Component +* Shared State Component +* Metrics Component (produces metrics data) + +By default, the apiman quickstart uses default values for all of these, resulting in +a stable, working system with the following characteristics: + +* Stores API Manager data in a JDBC database +* Records and queries metrics data via Elasticsearch +* Stores Gateway configuration information in Infinispan +* Uses infinispan to share rate limiting state across gateway nodes + +There are alternative configurations of apiman that you can use without needing to +resort to plugins. For example, we provide Elasticsearch implementations of many of +the components mentioned above. So you could easily switch from Infinispan to ES in +the Gateway, if you wanted. However, if you wish to provide a custom implementation +of something, plugins are now the way to go! + + +## Example Scenario +There is a lot you can do now that we support plugin components. But it's probably +easiest to explain and understand if we take a simple example scenario. + +### Use mongodb to store Gateway configuration information +If you download the apiman quickstart, the default configuration is to use the built +in WildFly 8 infinispan subsystem to store the API Gateway configuration info. This +includes all APIs published to the Gateway, and all client apps registered with +it as well. Perhaps you would rather that data be stored in mongodb? Since we don't +have a mongodb implementation of the Gateway Registry, you'll need to implement it +yourself and bundle it up into a plugin! + +### Create a apiman-gateway-mongodb plugin +I won't go through the entire process of creating an apiman plugin here, since it is +already well documented (and linked above). You'll need a WAR maven project with a +`plugin.json` file in the right place, which might look something like this: + +{% highlight json %} +{ + "frameworkVersion" : 1.0, + "name" : "mongodb plugin", + "description" : "This plugin provides a mongodb implementation of the Gateway registry.", + "version" : "1.0" +} +{% endhighlight %} + +You will also need an implementation of the Gateway's `io.apiman.gateway.engine.IRegistry` +interface. Let's call it `MongoDbRegistry.java`: + +{% highlight java %} +package org.example.apiman.gateway; + +import io.apiman.gateway.engine.async.IAsyncResultHandler; +import io.apiman.gateway.engine.beans.ClientApp; +import io.apiman.gateway.engine.beans.Api; +import io.apiman.gateway.engine.beans.ApiContract; +import io.apiman.gateway.engine.beans.ApiRequest; + +import java.util.Map; + +/** + * An implementation of the {@link IRegistry} interface using mongodb. + */ +public class MongoDbRegistry implements IRegistry { + + /** + * Constructor. + * @param config + */ + public MongoDbRegistry(Map config) { + super(config); + } + + /** + * @see io.apiman.gateway.engine.IRegistry#getContract(io.apiman.gateway.engine.beans.ApiRequest, io.apiman.gateway.engine.async.IAsyncResultHandler) + */ + @Override + public void getContract(ApiRequest request, IAsyncResultHandler handler) { + // TODO Auto-generated method stub + } + + /** + * @see io.apiman.gateway.engine.IRegistry#publishApi(io.apiman.gateway.engine.beans.Api, io.apiman.gateway.engine.async.IAsyncResultHandler) + */ + @Override + public void publishApi(Api service, IAsyncResultHandler handler) { + // TODO Auto-generated method stub + } + + /** + * @see io.apiman.gateway.engine.IRegistry#retireApi(io.apiman.gateway.engine.beans.Api, io.apiman.gateway.engine.async.IAsyncResultHandler) + */ + @Override + public void retireApi(Api service, IAsyncResultHandler handler) { + // TODO Auto-generated method stub + } + + /** + * @see io.apiman.gateway.engine.IRegistry#registerClientApp(io.apiman.gateway.engine.beans.ClientApp, io.apiman.gateway.engine.async.IAsyncResultHandler) + */ + @Override + public void registerClientApp(ClientApp application, IAsyncResultHandler handler) { + // TODO Auto-generated method stub + } + + /** + * @see io.apiman.gateway.engine.IRegistry#unregisterClientApp(io.apiman.gateway.engine.beans.ClientApp, io.apiman.gateway.engine.async.IAsyncResultHandler) + */ + @Override + public void unregisterClientApp(ClientApp application, IAsyncResultHandler handler) { + // TODO Auto-generated method stub + } + + /** + * @see io.apiman.gateway.engine.IRegistry#getApi(java.lang.String, java.lang.String, java.lang.String, io.apiman.gateway.engine.async.IAsyncResultHandler) + */ + @Override + public void getApi(String organizationId, String apiId, String apiVersion, + IAsyncResultHandler handler) { + // TODO Auto-generated method stub + } +} +{% endhighlight %} + +Obviously you will want to include any mongodb client libraries you need, and then +implement the actual functionality of the class. I leave that as an exercise for the +reader. Note that most of the Gateway components have asynchronous APIs. If possible +you should attempt to use asynchronous techniques when providing implementations. + +### Switching to your custom implementation in apiman.properties +Now you've got a component you want to use, and it's all nicely wrapped up in a shiny +new plugin. Your next step is to actually use it! Using a custom component is as +simple as referencing it in the `apiman.properties` file. You'll need to remove +this line first: + +{% highlight text %} +apiman-gateway.registry=io.apiman.gateway.engine.ispn.InfinispanRegistry +{% endhighlight %} + +and then add something like this: + +{% highlight text %} +apiman-gateway.registry=plugin:GROUP_ID:ARTIFACT_ID:VERSION/org.example.apiman.gateway.MongoDbRegistry +{% endhighlight %} + +The format of the value of `apiman-gateway.registry` is very important - when +using a plugin you must specify the maven information of your plugin so that +apiman can locate and download it. See the apiman documentation for additional +details about how plugins are loaded. + +Note that you can also provide configuration parameters to your component. That +will obviously be helpful since it will probably need connection details. So +really your configuration might look something like this: + +{% highlight text %} +apiman-gateway.registry=plugin:GROUP_ID:ARTIFACT_ID:VERSION/org.example.apiman.gateway.MongoDbRegistry +apiman-gateway.registry.mongo.host=localhost +apiman-gateway.registry.mongo.port=27017 +apiman-gateway.registry.mongo.username=sa +apiman-gateway.registry.mongo.password=sa123! +apiman-gateway.registry.mongo.database=apiman +{% endhighlight %} + +These configuration options will be passed to your component in its constructor if +your class has a `Map` constructor. + + +## Conclusion +This is a powerful new feature for extending and customizing apiman to better suit +your needs. Of course we will want to continue offering the most popular component +implementations as a core part of apiman. However there will always be many more +options than we can easily implement and support. For this reason we wanted to +provide an easy way for users (and the apiman community at large) to contribute. + +/post diff --git a/_blog-src/_posts/2015-07-24-plugin-components.markdown b/_blog-src/_posts/2015-07-24-plugin-components.markdown index 10aeb4aac..62ccaf964 100644 --- a/_blog-src/_posts/2015-07-24-plugin-components.markdown +++ b/_blog-src/_posts/2015-07-24-plugin-components.markdown @@ -4,7 +4,9 @@ title: "Plugins - Not Just For Policies Anymore" date: 2015-07-24 14:10:10 author: eric_wittmann categories: api-manager api-gateway plugins development maven +newUrl: 2015-07-24-plugin-components-redux --- + As you may know, apiman has long supported custom policies provided by users. If you aren't familiar with apiman plugins, you can find more about them by [clicking here](http://www.apiman.io/blog/plugins/policies/development/maven/2015/03/06/custom-policies.html). @@ -85,7 +87,7 @@ of something, plugins are now the way to go! ## Example Scenario -There is a lot you can do now taht we support plugin components. But it's probably +There is a lot you can do now that we support plugin components. But it's probably easiest to explain and understand if we take a simple example scenario. ### Use mongodb to store Gateway configuration information diff --git a/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown b/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown new file mode 100644 index 000000000..09c322cf6 --- /dev/null +++ b/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown @@ -0,0 +1,71 @@ +--- +layout: post +title: "apiman Policy and Endpoint Security" +date: 2015-08-03 11:00:00 +author: len_dimaggio +categories: security +oldUrl: 2015-08-03-policy-endpoint-security +--- + +In this, the fifth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to provide security for your managed APIs at the policy level, and and at the endpoint level for its managed and unmanaged endpoints. + + + +##Unintentionally Insecure? + +If you read the first article in this series closely (https://dzone.com/articles/impatient-new-users) you might have noticed that in the course of creating an API whose endpoint was managed by the apiman API Gateway, we also inadvertently left that API in a very insecure state as unauthorized client apps could bypass the gateway and access the API directly. We discussed how to configure authentication in a policy for the managed API endpoint in the most recent post in this series (https://dzone.com/articles/adding-basic-authentication). This authentication policy provides username/password security for clients as they access the managed API through the API Gateway, but it does not protect the API from unauthorized access attempts that bypass the Gateway completely. To make the API secure from unauthorized client apps, endpoint level security should also be configured. + +In this article, we’ll examine both apiman policy level and endpoint level security, how they compare, and how they differ. + +##Complementary Types of Security Provided by apiman + +The best way to start our discussion of the different, but complementary types of security that we’ll examine in this article is with a diagram. The nodes involved are the client apps that will access our APIs, the apiman API Gateway, and the servers that host our APIs: + +![apiman logo](/blog/images/2015-08-03/apiman_security.png) + + Let’s work our way through the diagram from left to right and start by taking a look at Policy Level Security. + +##Policy Level Security + +apiman includes several pre-defined policies OOTB. The policies provide support for controlling access to APIs based on the rate at which the APIs are invoked, the IP address of the client apps that access the APIs, authorization, and authentication. In the most recent article in this series, we showed how to configure an authentication policy. To keep things simple, we chose BASIC authentication. This BASIC Authentication policy provides security for the communication channel between the client apps and the apiman API Gateway. An incoming request to the API Gateway from a client initiates the policy chain, the policy is applied and the client is requested to supply a username and password. The level of security provided by this policy can be enhanced if the policy is configured with SSL encryption. + +But, this policy level security only secures the left side of the diagram, that is the communication channel between the client apps and the API Gateway. In this communication channel, the client apps play the role of the client, and the API Gateway plays the role of the server. + +We also want to secure the right side of the diagram, where the API Gateway plays the role of a client, and the APIs play the role of the servers. + +(It’s also worth noting that while policy security protects the managed API, it does nothing to protect the unmanaged API as this API can be reached directly, without going through the API Gateway. This is illustrated by the red line in the diagram. So, while access to the managed API through the apiman API Gateway is secure, policy security does not secure the unmanaged API endpoint.) + +##Endpoint Level Security + +In contrast to policy level security, with endpoint security we are securing the right side of the diagram. + + A recent post by Marc Savy to the apiman blog [http://www.apiman.io/blog/gateway/security/mutual-auth/ssl/mtls/2015/06/16/mtls-mutual-auth.html](http://www.apiman.io/blog/gateway/security/mutual-auth/ssl/mtls/2015/06/16/mtls-mutual-auth.html) described how to configure Mutually Authenticated TLS (Transport Layer Security) between the API Gateway and the managed APIs. With Mutual TLS, bi-direction authentication is configured so that the identities of both the client and server are verified before a connection can be made. + +In setting up Mutual TLS, keystores, containing a node’s private key, and truststores, containing public certificates to govern the other nodes that the node should trust, were created. The API Gateway was configured in its apiman.properties file to reference the keystores and truststores. The API was configured with mutual authentication by setting the API Security dropdown in the Implementation tab to MTLS/Two-Way-SSL. Finally, the API was programmed with mutual authentication enabled. With Mutual TLS configured, the communication channel on the right side of the diagram, from the API Gateway to the APIs, was made secure. + +We should also note that, unlike policy security, endpoint security also secures the APIs from attempts to bypass the API Gateway. With Mutual TLS, a two-way trust pattern is created. The API Gateway trusts the APIs and the APIs trust the API Gateway. The APIs, however, do not trust the client apps. As is shown by the large “X” character that indicates that a client app cannot bypass the API Gateway and access the APIs directly. + +One last point that is important to remember is that the endpoint level of security applies to all requests made to the APIs, regardless of whatever policies are configured. + +##Compare and Contrast + +To summarize, the differences between policy level security and endpoint level security are: + +| Policy Level Security | End Point Level Security | +| ------------------------ | ------------------------ | +| Secures communications between the client apps (clients) and API Gateway (server) | Secures communications between the API Gateway (client) and APIs (servers) | +| Configured in an API Gateway policy | Configured for the API Gateway as a whole in apiman.properties and with key/certificates infrastructure | +| Applied by the policy at runtime | Applied for all API requests, regardless of the policies configured for an API | +| Does not secure the unmanaged API from access by unauthorized clients | Secures the unmanaged API endpoints from access by unauthorized clients | + + +##Author Acknowledgements + + As always, the author would like to acknowledge Marc Savy, Eric Wittmann, and the apiman team for their review comments and suggestions on writing this article! + +## References +* [http://www.apiman.io/blog/gateway/security/mutual-auth/ssl/mtls/2015/06/16/mtls-mutual-auth.html](http://www.apiman.io/blog/gateway/security/mutual-auth/ssl/mtls/2015/06/16/mtls-mutual-auth.html) (written by Marc Savy) +* https://dzone.com/articles/adding-basic-authentication + + + diff --git a/_blog-src/_posts/2015-08-03-policy-endpoint-security.markdown b/_blog-src/_posts/2015-08-03-policy-endpoint-security.markdown index b2d2cc435..b1eb37590 100644 --- a/_blog-src/_posts/2015-08-03-policy-endpoint-security.markdown +++ b/_blog-src/_posts/2015-08-03-policy-endpoint-security.markdown @@ -4,6 +4,7 @@ title: "apiman Policy and Endpoint Security" date: 2015-08-03 11:00:00 author: len_dimaggio categories: security +newUrl: 2015-08-03-policy-endpoint-security-redux --- In this, the fifth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to provide security for your managed services at the policy level, and and at the endpoint level for its managed and unmanaged endpoints. diff --git a/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown b/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown new file mode 100644 index 000000000..318eb84e5 --- /dev/null +++ b/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown @@ -0,0 +1,52 @@ +--- +layout: post +title: "apiman Limiting Policies" +date: 2015-08-17 11:00:00 +author: len_dimaggio +categories: policies +oldUrl: 2015-08-17-limiting-policies +--- + +In this, the sixth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to govern access to managed APIs through the use of rate limiting policies. + +The runtime core of apiman is the API Gateway and the policies that it applies to incoming requests to APIs. apiman is configured out of the box with a variety of policies that can be used to govern access to APIs managed by the API Gateway based on IP address, user authentication, and usage levels. From its first release, apiman has supported rate limiting policies, where the upper limit for use of an API could be governed by a policy. In its new 1.1.6 release, apiman has expanded this support to include quota based limiting policies. + + + +##Types of Limiting Policies + +As of release 1.1.6, apiman supports these types of limiting policies: + +* Rate Limiting - This policy type governs the number of times requests are made to an API within a specified time period. The requests can be filtered by user, client app, or API and can set the level of granularity for the time period to second, minute, hour, day, month, or year. The intended use of this policy type is for fine grained processing (e.g., 10 requests per second). +* Quota - This policy type performs the same basic functionality as the Rate Limiting policy type., however, the intended use of this policy type is for less fine grained processing (e.g., 10,000 requests per month). +* Transfer Quota - In contrast to the other policy types, Transfer Quota tracks the number of bytes transferred (either uploaded or downloaded) rather than the total number of requests made. + +Each of these policies, if used singly, can be effective in throttling requests. apiman, however, adds an additional layer of flexibility to your use of these policy types by enabling you to use them in combinations. Let's look at a few examples. + +##Combinations of Limiting Policies = Flexibility + +Limiting the total number of API requests within a period of time, is a straightforward task as this can be configured in a quota policy. This policy, however, may not have the desired effect as the quota may be reached early in the defined time period. If this happens, the requests made to the API during the remainder of the time period will be blocked by the policy. A better way to deal with a situation like this is to implement a more flexible approach where the monthly quota policy is combined with a fine grained rate limiting policy that will act as a throttle on the traffic. + +To illustrate, there are about 2.5 million seconds in a month. If we want to set the API request quota for a month to .5 million, then we can also set a rate limit policy to a limit of 5 requests per second to ensure that API requests are throttled and the API can be accessed throughout the entire month. + +Here’s a visual view of a rate limiting policy based on a time period of one week. If we define a weekly quota, there is no guarantee that users will not consume that quota before the week is over. This will result in an API requests being denied at the end of the week: + +![rate limit coarse grain](/blog/images/2015-08-17/rate_limit1.png) + +In contrast, if we augment the weekly quota with a more fine grained policy, we can maintain the API’s ability to respond to requests throughout the week: + +![rate limit fine grain](/blog/images/2015-08-17/rate_limit2.png) + +The ability to throttle API requests based on API request counts and bytes transferred provides even greater flexibility in implementing policies. APIs that transfer larger amounts of data, but rely on fewer API requests can have that data transfer throttled on a per byte basis. For example, an API that is data intensive, will return a large amount of data in response to each API request. The API may only receive a request a few hundreds of times a day, but each request may result in several megabytes of data being transferred. Let's say that we want to limit the amount of data transferred to 6GB per hour. For this type of API, we could set a rate limiting policy to allow for one request per minute, and then augment that policy with a transfer quota policy of 100Mb per hour. + +##Summary + +When you configure limiting policies with apiman, it's important to remember that the limits you set can not only function as hard limits for API requests, they can also be used to throttle API requests. This throttling gives you the flexibility to control the level of incoming API requests over a period of time that you designate in the policies without blocking all incoming API requests. The flexibility that apiman provides you in configuring limiting policies is further enhanced by its support for you to create combinations of limiting policies. These combined policies work together to give you both coarse grained and fine grained control over incoming API requests. + +##Author Acknowledgements + +As always, the author would like to acknowledge Eric Wittmann, and the apiman team for their review comments and suggestions on writing this article! + + + + diff --git a/_blog-src/_posts/2015-08-17-limiting-policies.markdown b/_blog-src/_posts/2015-08-17-limiting-policies.markdown index 9cfbe9f68..8917513ba 100644 --- a/_blog-src/_posts/2015-08-17-limiting-policies.markdown +++ b/_blog-src/_posts/2015-08-17-limiting-policies.markdown @@ -4,6 +4,7 @@ title: "apiman Limiting Policies" date: 2015-08-17 11:00:00 author: len_dimaggio categories: policies +newUrl: 2015-08-17-limiting-policies-redux --- In this, the sixth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to govern access to managed services through the use of rate limiting policies. From 7354de7f2667aac634e35f4247d313c9d07c80a2 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 09:31:22 -0500 Subject: [PATCH 02/13] Fix HTML block to adjust for Liquid's terrible support for boolean logic --- _blog-src/_layouts/post.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_blog-src/_layouts/post.html b/_blog-src/_layouts/post.html index 3efe5a596..99d2d19db 100644 --- a/_blog-src/_layouts/post.html +++ b/_blog-src/_layouts/post.html @@ -12,17 +12,17 @@

{{ - {% if page.newUrl || page.oldUrl %} + {% if page.newUrl %}
- {% if page.newUrl %}

NOTE: A newer revision of this blogpost correct for apiman 1.2.x is available. This version written for apiman 1.1.x, for which it remains valid.

- {% endif %} +
+ {% endif %} - {% if page.oldUrl %} + {% if page.oldUrl %} +

NOTE: This is a redux of our popular Keycloak OAuth2 for *apiman 1.2.x*. If you're still using apiman 1.1.x, you can refer to the older revision.

- {% endif %}
{% endif %} From 2dffea9d8737006662a7a4436a387025db200f70 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 09:40:58 -0500 Subject: [PATCH 03/13] Update CSS for notice block --- _blog-src/_layouts/post.html | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/_blog-src/_layouts/post.html b/_blog-src/_layouts/post.html index 99d2d19db..fa0dfb7d7 100644 --- a/_blog-src/_layouts/post.html +++ b/_blog-src/_layouts/post.html @@ -13,20 +13,23 @@

{{ {% if page.newUrl %} -
-

NOTE: A newer revision of this blogpost correct for apiman 1.2.x is available. This version written for apiman 1.1.x, for which it remains valid.

-
+

+ Note: A newer revision of this blogpost for apiman 1.2.x can be found here. This version was written for apiman 1.1.x. +

{% endif %} {% if page.oldUrl %} -
-

NOTE: This is a redux of our popular Keycloak OAuth2 for *apiman 1.2.x*. If you're still using apiman 1.1.x, you can refer to the older revision.

-
+

+ Note: This is a redux of our blogpost for apiman 1.2.x. If you're still using apiman 1.1.x, you can refer to the older revision. +

{% endif %} -
+
{{ content }}
From d0589cc671d34a02b332fb366555b273b39608e2 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 09:42:36 -0500 Subject: [PATCH 04/13] Minor change to text --- _blog-src/_layouts/post.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blog-src/_layouts/post.html b/_blog-src/_layouts/post.html index fa0dfb7d7..ad47a16f0 100644 --- a/_blog-src/_layouts/post.html +++ b/_blog-src/_layouts/post.html @@ -16,7 +16,7 @@

{{

- Note: A newer revision of this blogpost for apiman 1.2.x can be found here. This version was written for apiman 1.1.x. + Note: A newer revision of this blogpost for apiman 1.2.x can be found here. This version was written for apiman 1.1.x.

{% endif %} From b65c367887e6bd8afe2a7fa7336a30a665a5b381 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 11:45:14 -0500 Subject: [PATCH 05/13] Update rate_limit1 img --- .../images/2015-08-17/rate_limit1-bu.png | Bin 0 -> 9463 bytes _blog-src/images/2015-08-17/rate_limit1.png | Bin 9463 -> 25775 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 _blog-src/images/2015-08-17/rate_limit1-bu.png diff --git a/_blog-src/images/2015-08-17/rate_limit1-bu.png b/_blog-src/images/2015-08-17/rate_limit1-bu.png new file mode 100644 index 0000000000000000000000000000000000000000..979fffac57cc3e22258e1d4e09887dc2c30383f7 GIT binary patch literal 9463 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 bnWY+KEniZt#R>ca$uX0g7B|YSJ3stCYX;k# literal 9463 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 Date: Tue, 12 Jan 2016 11:50:59 -0500 Subject: [PATCH 06/13] Update rate_limit2 img --- .../images/2015-08-17/rate_limit2-bu.png | Bin 0 -> 8763 bytes _blog-src/images/2015-08-17/rate_limit2.png | Bin 8763 -> 23854 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 _blog-src/images/2015-08-17/rate_limit2-bu.png diff --git a/_blog-src/images/2015-08-17/rate_limit2-bu.png b/_blog-src/images/2015-08-17/rate_limit2-bu.png new file mode 100644 index 0000000000000000000000000000000000000000..15482035c47dc823ef77c8dd586e6080afa9edc7 GIT binary patch literal 8763 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 literal 0 HcmV?d00001 diff --git a/_blog-src/images/2015-08-17/rate_limit2.png b/_blog-src/images/2015-08-17/rate_limit2.png index 15482035c47dc823ef77c8dd586e6080afa9edc7..326b89caf394049c414280bc0ff234e67c59982a 100644 GIT binary patch literal 23854 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 M^t8#iaw$M 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 From 4830b8dce16e324aea9a8dcfa219f0a17f2c9e66 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 11:53:05 -0500 Subject: [PATCH 07/13] Update rate_limit1 & 2 imgs --- _blog-src/images/2015-08-17/rate_limit1.png | Bin 25775 -> 29313 bytes _blog-src/images/2015-08-17/rate_limit2.png | Bin 23854 -> 27100 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/_blog-src/images/2015-08-17/rate_limit1.png b/_blog-src/images/2015-08-17/rate_limit1.png index 9c89e07418d11f79533bd57d8e2b78d028ca038d..e144049bc6b8a4f32dcb87e6cf9d3d0cd45c066e 100644 GIT binary patch literal 29313 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 literal 25775 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 bnWY+KEniZt#R>ca$uX0g7B|YSJ3stCYX;k# diff --git a/_blog-src/images/2015-08-17/rate_limit2.png b/_blog-src/images/2015-08-17/rate_limit2.png index 326b89caf394049c414280bc0ff234e67c59982a..c8bfd415318ea9c8d20849fbbf66976c354b9202 100644 GIT binary patch literal 27100 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 M^t8 Date: Tue, 12 Jan 2016 11:55:33 -0500 Subject: [PATCH 08/13] Update so that original image names don't change, only for new posts --- ...015-08-17-limiting-policies-redux.markdown | 4 ++-- .../images/2015-08-17/rate_limit1-bu.png | Bin 9463 -> 0 bytes .../images/2015-08-17/rate_limit1-redux.png | Bin 0 -> 29313 bytes _blog-src/images/2015-08-17/rate_limit1.png | Bin 29313 -> 9463 bytes .../images/2015-08-17/rate_limit2-bu.png | Bin 8763 -> 0 bytes .../images/2015-08-17/rate_limit2-redux.png | Bin 0 -> 27100 bytes _blog-src/images/2015-08-17/rate_limit2.png | Bin 27100 -> 8763 bytes 7 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 _blog-src/images/2015-08-17/rate_limit1-bu.png create mode 100644 _blog-src/images/2015-08-17/rate_limit1-redux.png delete mode 100644 _blog-src/images/2015-08-17/rate_limit2-bu.png create mode 100644 _blog-src/images/2015-08-17/rate_limit2-redux.png diff --git a/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown b/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown index 318eb84e5..ccedaf886 100644 --- a/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown +++ b/_blog-src/_posts/2015-08-17-limiting-policies-redux.markdown @@ -31,11 +31,11 @@ To illustrate, there are about 2.5 million seconds in a month. If we want to set Here’s a visual view of a rate limiting policy based on a time period of one week. If we define a weekly quota, there is no guarantee that users will not consume that quota before the week is over. This will result in an API requests being denied at the end of the week: -![rate limit coarse grain](/blog/images/2015-08-17/rate_limit1.png) +![rate limit coarse grain](/blog/images/2015-08-17/rate_limit1-redux.png) In contrast, if we augment the weekly quota with a more fine grained policy, we can maintain the API’s ability to respond to requests throughout the week: -![rate limit fine grain](/blog/images/2015-08-17/rate_limit2.png) +![rate limit fine grain](/blog/images/2015-08-17/rate_limit2-redux.png) The ability to throttle API requests based on API request counts and bytes transferred provides even greater flexibility in implementing policies. APIs that transfer larger amounts of data, but rely on fewer API requests can have that data transfer throttled on a per byte basis. For example, an API that is data intensive, will return a large amount of data in response to each API request. The API may only receive a request a few hundreds of times a day, but each request may result in several megabytes of data being transferred. Let's say that we want to limit the amount of data transferred to 6GB per hour. For this type of API, we could set a rate limiting policy to allow for one request per minute, and then augment that policy with a transfer quota policy of 100Mb per hour. diff --git a/_blog-src/images/2015-08-17/rate_limit1-bu.png b/_blog-src/images/2015-08-17/rate_limit1-bu.png deleted file mode 100644 index 979fffac57cc3e22258e1d4e09887dc2c30383f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9463 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 literal 0 HcmV?d00001 diff --git a/_blog-src/images/2015-08-17/rate_limit1.png b/_blog-src/images/2015-08-17/rate_limit1.png index e144049bc6b8a4f32dcb87e6cf9d3d0cd45c066e..979fffac57cc3e22258e1d4e09887dc2c30383f7 100644 GIT binary patch literal 9463 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 diff --git a/_blog-src/images/2015-08-17/rate_limit2-bu.png b/_blog-src/images/2015-08-17/rate_limit2-bu.png deleted file mode 100644 index 15482035c47dc823ef77c8dd586e6080afa9edc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8763 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 diff --git a/_blog-src/images/2015-08-17/rate_limit2-redux.png b/_blog-src/images/2015-08-17/rate_limit2-redux.png new file mode 100644 index 0000000000000000000000000000000000000000..c8bfd415318ea9c8d20849fbbf66976c354b9202 GIT binary patch literal 27100 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 literal 27100 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 Date: Tue, 12 Jan 2016 12:05:15 -0500 Subject: [PATCH 09/13] Update apiman_security img and post --- ...8-03-policy-endpoint-security-redux.markdown | 2 +- .../images/2015-08-03/apiman_security-redux.png | Bin 0 -> 45518 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 _blog-src/images/2015-08-03/apiman_security-redux.png diff --git a/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown b/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown index 09c322cf6..f0a178f4e 100644 --- a/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown +++ b/_blog-src/_posts/2015-08-03-policy-endpoint-security-redux.markdown @@ -21,7 +21,7 @@ In this article, we’ll examine both apiman policy level and endpoint level sec The best way to start our discussion of the different, but complementary types of security that we’ll examine in this article is with a diagram. The nodes involved are the client apps that will access our APIs, the apiman API Gateway, and the servers that host our APIs: -![apiman logo](/blog/images/2015-08-03/apiman_security.png) +![apiman logo](/blog/images/2015-08-03/apiman_security-redux.png) Let’s work our way through the diagram from left to right and start by taking a look at Policy Level Security. diff --git a/_blog-src/images/2015-08-03/apiman_security-redux.png b/_blog-src/images/2015-08-03/apiman_security-redux.png new file mode 100644 index 0000000000000000000000000000000000000000..a471e937b283d026d5c5d111a97eff0663066373 GIT binary patch literal 45518 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

VWVBq>o4lqgLp@%p3rf0N%2F2 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 Date: Tue, 12 Jan 2016 12:51:20 -0500 Subject: [PATCH 10/13] Update img path for Fuse APIs post --- _blog-src/_posts/2015-07-07-fuse-apis-redux.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown b/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown index 6106ccb44..7edd2ef82 100644 --- a/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown +++ b/_blog-src/_posts/2015-07-07-fuse-apis-redux.markdown @@ -53,7 +53,7 @@ The container should start automatically right after it has been created and the You can inspect all the APIs deployed to your Fuse Fabric instance by clicking on _APIs_ section under the _APIs_ tab. Note the _Location_ field - that's the **base url** the for endpoint implementation. We will use it later in the apiman manager. -![APIs deployed to Fuse Fabric](/blog/images/2015-07-07/apis.png) +![APIs deployed to Fuse Fabric](/blog/images/2015-07-07/services.png) There is a default user preconfigured so you can verify if the application was successfully deployed. It's available at `/customerservice/customers/123` (e.g. [http://localhost:8182/cxf/crm/customerservice/customers/123](http://localhost:8182/cxf/crm/customerservice/customers/123)) From 3935a5b02472c10e7b20886950ac03111a41c903 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 13:07:18 -0500 Subject: [PATCH 11/13] Update apiman_4 img --- _blog-src/images/2015-01-09/apiman_3-redux.png | Bin 0 -> 49344 bytes _blog-src/images/2015-01-09/apiman_4-redux.png | Bin 0 -> 196462 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 _blog-src/images/2015-01-09/apiman_3-redux.png create mode 100644 _blog-src/images/2015-01-09/apiman_4-redux.png diff --git a/_blog-src/images/2015-01-09/apiman_3-redux.png b/_blog-src/images/2015-01-09/apiman_3-redux.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e83c137e3399a04507d9eb3f61101b723ee5b0 GIT binary patch literal 49344 zcmeEuPZWKxlQ}t@m|VaitF;@ zpAq-#m9T=g;<@YQ-AwL3%1R&KiFd%`K$GjjM);sH!iejJkx%gV-k%)f|N9v*z*n%N zXCA%tKSy@J!$YGR$iMpEpT5jP0xJ{2hy2f6|2r`%BhwWtF!}#J0Nx}FOgR0Y4}fp~ z|AhZvhX0`@|1Y&sNAmR=?4}YqckH`2h3GGi4xoMg*z$A6|D(+>;$##;GcBQ(QCOg> zgJ}4_bqA0TTF)*i(g$tc7PjTax|_)X0k9hO_r4Up zR`_Zwy%B<#&^yz%4%D0Hs&tzU5R2+Ch5sIv_?PwN|Fhyy$aWeUiuk&CO`@H0Br z?Bg&k_$b#Pmd*2IW)z8EETa;Tp-}M2IPOG%Jy(dK#V`ecEG$g#_Iv8-WGFzO{eEL# z=5bx#_+Ul?y5fQxcQ9$klHSgR#SPoH&$1{oo+Ezh8Q`mfCTsI){t7-xZvvipSKB^W ze$6FvVD3H?X!Omq?kP50V0LKu+$#poQ6HX5?xF>s&v?x_AB3zaN657}>es=JqT*d8 zxLI_eI(2;Wl({anzKz>S$Ob|~uD}^d!p=U1$5Hd+K||)mg*L_JZa0V5BEoAOf^#I9 z%f|X`obM51`nZQT@qQLhqR^>%>fn-Uu*{+mZWuY=q>Z=9<6yntWtKRbvkqk>BOPxf zexx1NVGv_Ce_D`HeY!0r;Kl5>X?XL6HoziWo(20Zs_)(i(nx?`1BH>>zwqP87lhOFl(`}P%QuGGe z_;k}ZlpHq=CUuu&fxW;~xGxDX$ghAAmHk?WC_XzrjFy&GUQP}8#)Y&!_LKB?Tw}B zt@#wRi2hnVfj^1EGI4H$yj}e9HoV?!tk2H;96B~iUk(3OceF`F6Xol=9S`#nbS)NQ zFnYBZXzlLdFM~x>^U%06Vp$fRWNv(wJLa)tDe~ zc9LT_Iyw@HzrVlxY$NZT!fz0y?z{16jVMB8xqv^ zC?g#E79OWLSY49jOocdO>6Z^|NFi{-p8PYRb}d$@m_eupadPw9WzAhrjC-ltp zFDI~PUppZZNvjx5GcU0axW~8G32n!jQ%thC4ICG3ve?_^I#}HZ> zg}QlVmLU|f%b==&MW_BX^X{S`;r1L`9DNptY6@bajCe3kbL@EBaxB2nYoh%Y5EtK-D2Kh9fy4J$4?i|^4 z92#4QKJJ5sb*0ymT&SM@ki+8mji{;^4cg7-e1$DbLFBzT)&HesgKa#PLg;YNIPO^{ z=|Ej=GG1nKRsUio7(i5#fbN$9&Od?}#?+UGrv^&iDf@cG(OIoh--zoW#((GuWwreK zP@XVPMrw>GzBc`V)9q*|aZf$}Z0NOZ{~Znm zlQsH%X=mcMhUlCfgw)NIr?#o0*O|kKt2)*Vdwt;QtW|}?Wq0}R11S&*%ADWki%N$2 zgxZm<=K!lq!}N9eL+3QT!c_WOz4lX$k39eJjs4L1Q{_bt9oA%L7|t&Y4+)jays!TH zA36y`WrS*i5K{!E&zrbx@;UlVo@B-kc05v62(oTj_{!7HjochOcE&GStjCh}M$i5k zsPlghY`sl==!uM%1O22HS{iFN&k=DWFj$72?r(k~bg920oec&SaEEH&1juePprd2h)??z6 z?Q7g)jN2m&hdrOyQU@F{(s;tO61PY}6n*|ovL@ds#is7c(!$C)yd6C01u%S#J^Hq} z5so@E6*6uqvz5+2tdOA=SbE-V_=Yyl*zL$aBU3NJbBF$+Yb>?rOm-jYGx5|T9Sd;Zv1x(NK^pehnM;~!K> zea*QYGqXQF?5@0a^B8m#_6-mDk$tLX7PF_;rX`*-`4imdvqG7l_8Exr`jJb=ZvhyU z+ywvo-jvU=(sms9^lwa;&j>@=r{r?F><_N;H03`=Ms#36P~KaV zwr1;pj|6rT0vs<17C+!K{*4opy8u)rzuxIQ_g`;&14J#No-ULB7|95ugae=?YTlb; zh=Tm@HytFv!u(ZlM*cH_(tS$~#O6S_RjvO9nxeqMP!Y2LIPmXH$mjukC^%hfKKS1` zAshDx7KWm~&hj54aeS#GfIVOkc{nfs*V|Bmg$dDm{5LcXguvG>|C2J{BrA*noSe{Q z@+-*rHm#h>yq)&NeUSh|9Mh^30bmM6lEfk-ZK#)jYBN){TXA z@6(H*G%%noBI-XbS^w9ze||%&=xg{U(Ps|q_w2(-_BQOgnw1c-0ZFKC zPvyn2!$~IM`$W!dd92K@VJ%mS!)5jyN_qEFd!IFoeX~LH@4etpEIB zM>3$JMCdYO0Cw-l75rJM6BTfYOIcG}8yKxu(`#zJsZ_#4ScXgxOkF4Sr6vKihg?*s z)@H7D7fX7+eHl{|`B!PSzVTF&3xcVDC{72QMm-kTdJfoqX_#OF1=)bDA;Y=t@AvZ& z#L{r$!)c-{2e|Ynw)TT-Q@_ghua+9$RehfA5r#Cd;#8@1N;FA zqV3Te^Ob$qoJYNyhHq0+e46!_a|h!GzYZ)5NK)Xti^k|lg z5=fo%&n9XJU}kaZmts^&0Lk^C`%;*(n2gc3wze8wJ=_}o*~b*Ra=W|#tfQktO%_+Z zJ4RhHS4KUYNJmq>J4*NX_-J%@ft%OdTu@U#_xyD>zP_NO~up)Q7Ao?I$O3o=?g{)pkx+rZM9}6tG)dr>b#uR-$%z`yaSSIQ}FRe zitY|OBcTVGnVAC;JQp9zV-uWAMpH45e!L0IqrLo48TpwVOmi=~%u6ysHO6I(zd1Q3 z9=5ChqK9@ufaPfFe*XY`s)2!tS)=G0P~y{ZJ88|cxJ<1w-}5v&t6NNXYRjA=RczKR zARJalTWnuByRLGXgG=12Hc2wNUdA?by#;Rzv6K45fYew_lJ=&JLy!`uXqdUJ`XcO~ z!?ul9{9YT4wYcWVBg8DU@w1Lvkwtlu6)cAxeDrL6H2O9Nso>U$;z$qAd1JoLxh*K6BTU6lAnZYo^{1tARlfK!l-w5;Raf2 zbjTrqO;z}Fs60+?7ta7zc>h?z>;w3aQUfjXGkU|7Pz05RH2RiRI!y z|DaY-i8yR83Mb%DyNm(o9*?s+b*A=UB^H4JZ>@JFaPb-e?AswEALQQ@#rA zx7)nOqeBLcRX6Dcy|XJJWzq^h&sL-0BdowgTzi*i&tYNrh}lGL(n{2?Fcfv@N9HCP z3r0y=pS|VF2aX9RkAI1U4?RvP+OT*F#ptoN7n4X*1vuP|;2OEtERYRNi;0sqqB=_2 znTL^U-^ov&2g(Ita1yvVg&BD?x`lI_K8ScmTr&U`g&L3A(nQhVn zg}6`D-O8u#hQZ%xL@dGwyKADxs+1i|)vCqC2W#KhWzu(nR=-gFKHnXon>Ng6Qp&}y z4#j0L3H85Dye-C7isH#7T`?=j$PLxP-&Xmps*n03k_ z*YWsx@2#wpjdRxi(Wi6l5t?PP`^POzwZt(OUD~O?&KDMU`R~FM!r@DFj@bA_B@LFR zmo>^IUQJMg3Dv<*z72MDb}N=~{g^L4BnYDPI0^(1q_8DKqJ37vlT2**H^JDkiM81@ zh}3P)^L{aV&~w6{2t(BMb}G+k&{KNYnz>Za;@%m}jNd{mjI_Pg`68asX+HaR!a@Bq zQHyiqqjNh0ipSck;Z>Vw>Bh?)jUn=@#d2Eh7S;XftBQ8Ij3cAlp#-CQxI^{C!c6sK z_4tV$ZSTj+spHQ|bjYVda6}3dmM0CHQQMjB$6wr>)f#N|)M}QUglZPyEF(yN4e(ht zjo^~BxWP22n$O%9LKLiGIfJA=*xShRoR?kYZy$CAbhIB+SpW#C6p>J6agohXZDbMQ z$;OP12dkVEqtjx23Kgr({$?6(knSj8wm}JR<11@PS<{DNUJskwKNz$$SI&=}F{gCyL34@i505t4 zLYeitUX3P$o_b}_v3ayk4X}ri#CH|J3EHvy({enenqIw_+eQrTYPXvw-Wp!6-OmZc zPp84#y$oJK>w!^W# zi+(3KrLiv>g)h{@bzX8bx$Ow%SIj&cG3nQDw04b6ru;Dydm0nWn@bCF@=Bp| zUsJSTxIa9PQ8;gVLbjpzemc+U?$K{*QU3YLsFNU7|1fg1#lq3$cf-MnH$zsO@ij;L zz1Ho+YwY+}C?2AX2W8Dezr+?3%C5%1lxX@P$FH;QHM!3Jlq1{o$d@gv3f608(jGUQ zA2XKDdo}NoRUeU^fj^U0g)P7-T9e!0TZpNWJ~`}+VP}^HhW2J1t0_7yJE{x{%J1{1 zzQRuNgGCD>ERny|f*xf3$$~roL7_$!1}Wx^n;IeOz}go zu_~= zsg0*}+4OAurW|J*?|tJq&Gkxs%fnx9FHN_eoe94USC~--Xe(-B)&|spTC!#o&w2jX zH;u?i77cVtNSS!1<>qq{rOa2|Nm@>73(i@dLz(KQ5^Y*euDY}hBGb*9sq0E|TzTow zd-A~xaCla{#x1+6Po)Gdr`g-M<8I1aSE2GB?+3AP(W7}z+Dbf5nog4HGn};>*u)L zc28X9*Rr;q)R@Z$M1Bn-yAGl4w(aXAqp7d*S$s4#BQ`uIN82}>(J1M~>IQKeK0P`R z7=r`EJUVs~tbRzsD?(C}OqPh7$e@E;SD(x=lEPE2>9&_Qm3#cvY4u3RsJ!*+6OUzk zp~w0!h6GpjnpsNy26I`JM(3iDPhX)ksYv=*wq^YSt&)vB*1N)m(cNayB;Hjviy81x zNaFK2T&3He)71}R-5%S|e33|iJ8o+}^fd{tO9_O4vbVpQuSJLziQ1mMjGB+IgA2mO zOCq12HhQN zz*MetE|a(>@qAYvwv93Y*Ye&sp02|hD~c;+%qm(AwV;*K!`5s6VdwHzdU&?uowDb3 zlp#w#&ZW~5{O%eU_rnA4n;iS(yP)w66tA0Zx0oBJ#tjP{I*y@>O^srcG%IZB;iq+y zF?p|jrMF(x^!NLidJ>TW#;i*^_jiA`KQOrOp>lfYK|+P;H=uwySxj!w2z;0~ge_K= z8p9q-D|fylG+HRe+#cgOq2*Yz72&$PEeNi2&d2)Ax7S0JBu(E)F@ldpJD*=6^oF<# zf8{iYti07IF@!1L{@pF9_NQvUUEYH&)l+dI)?e97vmE)zsw?8@An}|Q`^(~x{(~MH zuhKvlu%+)D!eO}gRd`l7>nd*DK(Z%++u!W7PV(MH8*g{6hg0$|hePQGi}n|rQPe7$ zj^A#S`{Mfer!b~hUJ*4|sMYA|-FCpOs3b16x3t_IddG@HM4f)NyI|^%-}C~bFOcbI z%5m@I+ULSwe$#2s|E*b@e^{}(0nQQ5X$*Lv)D26fh*^-$CD-1z=|Myzs9kgF~zry2Q3 z-*_`+|NI$i!!dD~p`8q?pi&PZ{ZGVfvb zef%Q|Um+k~lf>FjN;U;@5lSutpNI!Y5bun~)BPJuvF$7McXNZwM^AX>iGEv%KTkIJF$ku0)3{HDx=|Hn4_`lW`T#whucIA!)xAVg0n)2B*ga9 zK>N8?=Y%w`YmF4onuG%W$1U*wT${M4v(fG2iFfqYkaIl9JZ_;UZg_Re{M~O`Dd+p6 z`XqrBHwV*D=Z=$V5a;8?^srjFt8C+$3P-{t(bK8@_FUPgXk{MLJ_KFS=YLAdrC~q; zuOupBn;F3QacGiNpT&|ne#fZ5v34NVuV!nKmZReEdYq@)^lY#lde$%N^^;g9Q#_mt zv@06z^K1$2jJZsP4~txba(*iky3`0-fIg79)w6G|@v>hiv{86T6=LS~Ee<(NJvf=V z?^@-CwmpD{hjE!58%ze5D>;u5Z32T~vdj~Xz*f-pa5D95!#<5wn+PNTCBJ}7PpVrESzTx{zu^%A0sq=iN;@X(3ru~t{AI0mh$Tr@>TY<9%1Cj8z zuB~Tt9DS7Jrg1!CraZMc^3qVlw^_HATsLd}UGirc>RbKqT#|WY&<8VlY=qPbUjxBX zKFNEV-K>4mr~2r7^kLAr=c237cQw<2C~uAx7lYejou~KB+oQAW)Az^EA@<9c0wH4d z(Yz0gX1{k6Tg8&gpZeG)`%1>$tmc&&bQ+sH#B*MF~PvYxjiKGnY z`8G|r!QMO_(A*yy<*INoHF|LUR;GLR_B>MT6up^lCC7@v_3|*GeRohA^HS`YM6LNE zl2l)ho{5E*{TjA@=4VP>0xbm-ol5SKAm8*H^#&)xv$HL zwDwmVcj0kE%la`c>!(zxxqHBhwYwihob}}An3W7?{c*fi{ z)a2sW{k%Wo?{w#s^L~6#4L>G%kl+PZ zOy!j3-5UurYk0-Sx>vHU&YR?rw(k^|!<}Uo1O}QGx}LgBAy5s88j0N=nh0oQJ|3D3 zQ@ZJir19%fhQDS5^m2#{sENfBx;Zbw%MijUsPZcyPR|nx8AxGASni?L5j1_#|E$(@u~Koq{EcVTbNxJv#w5d0+4YZwHvTPk z2|fGS-*1GAQm-Dy>f1gn)uCOt#L3fRYf)&dwLg9{Mskn0vAEy&yk0J+P3Nz!5WCQ- zy5!rh=+@6(otERwZV_j1lXo4G+728SsP(w%CZ^_iI>fHjx*UJLHmSPIK(kt(p9;g0~#>|l;jgi?1Ct&wwd2`f>{sT>U|q{IO~yC zhMX~pQylTG@E~7j1=TClL~{DEL(7RC?(o{yti$G0zrdL)-`5MN9C{?hv@)e^bf=X+ za3N5G5WEGH^B~nzWg;jJNR?qnj0Ag44?E)OYQ_D8`ee4u(P6u+baq*T+vL}FLZEfI z2a5Cox5M3UFih-FH;Suaqxaqq`;naJPYz-P&Pmd>31njp<_3sHti{#2p4M?r*u`_y zSFPjP?n&}Pr73mY@V_FtMB4WcYES`F#vtnzI z!sZ@S(|$foPqvtKzt!IzxI`9fSy$?{fXhH1%?}P?%xdu7^W4s*;;$sIpC=zCh~3m4 zWYS<>c7FEUZWlP$aZ_z*uaTZrtFq80K@UF{IICnFS1k_qvD$u}qd`fT_0-cpJPzbE zg(y5n)n$p#`YAusKei7k8dz+`FKn-TknS4p^S?l?5>AUExCnU^Ni;I|j?(Nz)92ly z0_Ae9z4%@_ph0ODjvUepDOsJ9pr($S9lcgDi{ax{5QKGKs1V6@oh4Ym$C;e;);_tqxRrKa=8_yrdoq#&Dv%9YjZy4xWCv;#wyJjwQ0-0M2M;BuD%$B zhET11P)+7IP#9!558_f+b-vDUPB1X~_=#L zy;yK@FBVa&qNT>`EtHZc_I)}Jxj@rBx@H4$JKwtf(V&v-YUHsh&l;V7F$78A>2J>P z7v@H&;S47b*VgZ&cJBp)Xg=Z1NIIt^&3R81km1te<)_t=#tc2-E`NmVzLl95u9h#B zSVvET7+jw|gfPGlza`8WVyojFUH9b}scP7-rnU;5awLsKg}vLN3#(2i)!+f%h9)j3 zl{HPPWG+6CEJjVQ%~tc;*@6HD!}qBw(D#2`Z^ z;<*79lc)#6@QSiTPZm3^WeZ_x9%-+bqNKaq012c&!D<7oRnD0V8=oI%gxtR0xnn{QIuG}l5#x%ACylz|DiEmN3dX@Dox4+PyA$SN7g{HUk-gmL4Ij2{KEeXs zD9Q7&fydKXs=x0G<+{rfM)wrMWXZpDQ|JN#Ly<-f4ulwr11S_&Ab~IxsVOS|7^!aq z(I#H0$q%^@@&Fw4S7Ti7uoV%*7NA9$W!}%cyR?>Qlr=CCwoq-Jgj@l5#4_s-c+D zjEho1g#Y{9EF?BM=EzQ#XCCW1e5oLPCZ#HyD<4IZocvLO9_9?yj0onV2v2TYk_9}I zy75-WTR*P~Pc}PL>#d&*npr@d<_r6QTBE&d?iYb0?w1~^Iw8<%QYI!HHUV7d8*)ZN zhse)nl7!IU0j>aKKX~dMz>%kFmXW5Riog?7*m>qgwcKWFOHx<`XjSj)R^si=NI$yD zwbsZIP;k|N$bO;9fdv&q4~{zf!Jh^f(M8#$82a6^V!mkzlxw0}O)zYb)((ubfhXSi z+SkZ(ld^Vl|A@XCkiOpYpIeHHP#>oW>QiLy8k8y0WO18TIUU=&&NnF7@5(a3qCY8 zr50I)-6s{OIw$2HWH>U>zDqSs;w?f8N=Ea{t@!wIklM#v>A4Q*fgiZ$FoVW5;>IB^_Me>)+l4fs(17~y@AfEd1w(9Mv1 zEHZee56C|T*hHCMQN#&q{UP6Z8zVJz=1Vg5j^e#{PmK6}Ht%JAU19@8RlK}#YCyun zme4z_n@RfJ1(c|oSgRjNZ3^;35?b-3^haTXA_8%?alzlg+3Pz5yoE`eL!+xsX(U@U z5^n8SFk=&4EpjPJBtYu3OlUMISS=Y1p58KgWyR}Qp)m16a+(-|q=MkTs_c+d5E&Yt zf;7}j87W)($J@paf_Mn1%EAdqyRH;p+en&W_cveJZHf3`pjQ!&kyhXqpY?1zvY|NU z@v6P!Qc?y5^cWW=eu&~$VxKAuZxgg_5jq$fxKS}_RTYMeOW}}OKXy`3|?@f7y3}NN)sPYt9NVIb|_jC3w{YRAZ{3@Zp+E!Zf4oGT9=VhO0hBoo`W-V3edpqc{wQ zj9qGZfI6wPYU^m+6#W8zlm!90oVp$ctv>+Y>4F7+bQJ4$_kNp};IW|$OjDebJc`I0 zGv;E?Epr@Fmid&5aK=4XC9=~F87}@a0n*q_km#>^DW+0F!5qZsmY1hNICMrB4agGcf@?K^wE15v z0F*%w*3w|9%imz~We`viH(p#DT}V7&hm4Ye1xTWq@HvLKksY}r9o}w~%P~zNFVd3o z@nP$W(?wl={h|(AqCZ_rT9&wSxxDPJR$3vc`7pU|?Py~E65UG!>t%Z2mo+4i&gbM^2!G{XQjN*gu;_!UGym9ea155Tsm~J-D>X=*k zpT9DFGsvtW(rs!c;&3+vET|}~W1{_|66WjcMc@-)Ejl`@g7}Yl?d|0?2j$}zd(+av zA)^;#X0K8=FkT6#i>lv>g@Hdg+;9e>N-ENlX=Y(x8Z6KJ;%B*wXE*4J=;A%tS4Wq= zadUI~JO}#2G?$O6eq0PFOB&>K)1WfLAzU(cSo7L8W-Ikz<~b=D6O)1gJL+YNCTVA9 zo4vm!3AlvJxf3+!odu5YOqVqLbPVPxpb#9?jyXpX#ZB(YGgEv<`m$}Bz`t^y$F`uA z=t)^>&sQM*ntqG9-_(y8T6wbPrnA4*@~V~k7g!t*X;HVv%vgSnbOfCJ!w{tfjJvyQ zLlWXU(V?~V3|7_9nS!Q(&U&kylbC+K^e{(hYxVc*@6@ta{j?+a6R7r}RZ7|Fs3Wr8 z^!nW}+OkEOIs8u*!}a`Lo#$*8emH>7v>{|=0@mcdGO6cTLS#XqtT;eBZ(Z3d&4)Ff=Ms3bcOYA zni5ew{LvI13r7>?-1MA|n^DLLjS}HZw^pi2tc1gFe)o;3e=;-Rf&&u~8Xgs(iHw=> z7gtw7vP`f>SBDFglIFANT>9*UWF2Je7Njh#LT=`-3=3^Kw8TWDX^(!+cxTgXsg5Vj zk&Pp3%y66GJ%YA1(At|W144d>SbMuKd;B`9z_5X5eJvWcs83|dzNeXpnb#Uuk2-z9 z{wtpAd}laa-#Gc}>Gy3h=gnJbCoOSZdkA-@v45_W1x5o4I^HcnZ^mKX?Y*J3rt%Q4tbd$7%%{+GurJ>i~uXg9U4Q1=mV^M> zV8&Eqs%nbljO%EB_xBOXp%*QyWmC8ujBl4uymhSaMs2#pF<9PC;(3M#6c!-c|8^+5 z?Pyl(QW5yY@_Toid%E8%ez|(s2G-i~0k?!MFe@`pSZ)V)Q+jP6_*Ow)B2zJcG+A5O z+0o2v^drv+7|J!bu$@m~N*pe3BQj|0b!0~X#D8}or@Ur|(LnK?N#C|3l=@NoJ5C|` zZ}KdClKS+}xx7H>_kmfL+p4_nr~AY}Gcl|p8fZAy{-aAVcS6QYUj^?!+VxDmk&AtB z@NvWPun#2pyo{Cb<$RiTfAWl*dVk3fRE@NtcJRPrt)O7a>vgmCvribucf6sp{ zJ?q=t`T@8y84B2o{Ld#L|1iH_!RsQX8>3jvl_9TIprSu?3mdDHYZKOWZK>5+ssa7z z_2kN70rrPKMGmGdh=rWxL*$ihYxHd2MY9u-rV*U3CCNs*N?cm$we;fgC*J-TV@ptp z)=QIl5WKr9)ABmlP{GY|fk&UTYWucL@Ws!NaOUl~Zh{#Tn>{yDvIuLO;SLM?$z;^d zSE6q+Wv~a~*QfQ%1jVp-w zJch7+QG!3B%n?|-i>QN09HKIIh7xFofePguxVGH0bm{xFEYR0_M^o;xO(Rmm4tMgt zJ7DLIl+Ll3ne`lM*D3}N-tNuR#HSpRF^`m;%^5)-*KU6dhv11*#b2Smr4D1^O`dMr zu?|0B!@(QKuk6$d3xc^Um!_YRkp)Qx11S2_S)LIn`=I^XBRb-Ndqyswk*ayjU}vKR z69|6tJuR+2DFd~6op_6~#{7ppdGAjG&$r_TJRySt8*Bb3^m97ip8lMy?U_VHwL(_f z{u@Y!ge^f(>-yn73>0EHY_5IGrH3*lPk`M5_ab6+ILXZ&f(lI&lJaONCemZ&fLluc& zImN@>KysaTTC^HQ=2%hy+N*PtZ9u7+ysS8O*nYG>HpC7&t0wyzzXsEa{@`FR8Y)_% zdlX8N>70C;skZ2&&#UBtY1L$^a|9zF9Q0NCRZPcUJajhrh=zAY(5lBr27QM-;!oih)|36@T4V3 z;RATv?*5e1Hy_n$^kj39^Gh+6|0G2+$#gaL$6!#a$`uNmY>ULIikt)sI^uc9q#Bka z2J_n-RgiMpSg8eDc=K+RM-AFqS!xo9VtLP+2EY+}7t&aII~=kJh?{5Gj~Z3;O6;6P z;Ias_cr-0Fo(Z~aMsg%JA2)?>O}sOZ&&qDh*!dqw8TZP!&(qZYdw(my;l%evZZs1i z8pxv9V2XB?SpZ7^o7~vbv2Un@;(@M){6~lq?BTsb3%w4NQckAKpqoU~*bQ$~qCkbBI2Z{#NSe5`ZGB%==V|9+ zhntyDt&eP6a+`(!0RPy{R))pVmVm{$2E3)F<2H-#O4^cYfc$|uc4T!R{+yitla7Bq z=Kv#$ZOg47qD;f%)#5M;qzDXY+lJFOeOy9$pLP6}OCFhdH(>ovOa2VP}GUqy0SNB))o#o5l;>#-$s7D3mHw)vJ6N$CYuUjybwz+PYzFAZ)1l|~} z+ad=JPea&sJ`v8)c#^pBKRtq+dtr|dfDaW++v#Ysto!RRCXVR|0ufs z*?ap5ELfxCrA8roQ~z`1w?!FcC5Rk_fBTHz^qaT4LP<7~YJG#Lt+cZI%vB+KZ4k=S zL&$|qr(UyCoB~%QyDg~|L7u97C$WmF)W^K|3n@2^sZ76mr7vhuFk|3zb12P16~iAg zGlp~&${GR9Hgnvul;H^S9*$j#w3&yi`gS_1ED!tcl^ebjS9#Z!^UOJtDXH0M5wWW* z@+t+DA66i}nS|6G3Wf8X(eNu$lo-S3aPWbQ^xmT$G|F&uYdl3g{JV&QfsBQZ=;+?yS*-WgQ4#W?tL#XoMPGx@uK z8N0b0mz`HVzYrRkS~PG~wq2!87p2vstPSx7Tugb5MdnE-iKA^)@!bVmUZjy5fjgrd z4ub~eJz;kYTGl7HJOLV?J4_aNG;h_zv2#13yFmyT*ChQ*=H+h_F(Qz@M@m5i$K!6j z=vsXrf!raPq7Jo=HsnHJM~@J|1`cIWPMiVMLGb5j;sMy)H_TnG z2{JJ#qxeV2D#UyE#O&$G$W|81;Q3BkY66M;#^c=JUxa`;o%qS`Dq0;7sq_gQPDrzzPZ#cGu{3Be& z+8m|m9LG-fMMU%&=gA>ddd67DHH80e-sti~Ly5 zAq@}N#tsSraFd21x_cX_9{LIBRlu&A^R(ZN+UP@@zSof9s#`ElE8IVBKB0GBvXekn z9b%?Raffg+$un+c1Palo-`>4Rk?SHzdD8~&jO2=FdA`khR$I9&a}GQ@^C!Ca2_Cia zsy?ip)7JYe%!j(+G5>q^y1QC=LR}=&{5_pv2GuoheoJEi|d($2srExx!>t=IAqu%Hd6%aJH(@o8CrAlZcY4P|ew^C5LfP`{QD}m>Zjw=TT%l zJsA(h9@n_5+{l87!2JRni2UolLkBe6jA*h!l$lCj>Pl2kV~B&SjWC{LsLUMEsSn&t z=F>$1#||IZ4^s$*Ym&o@2KR>V0i4wSd#|&S64_%W%~Nb_q$IeFb^}sgLMQOeKFOkF z?5zJQu3Jq0GtEQLrw?g56v_Mfe$^n&q{eGb%UP=>tZgHVX2|=Y-#Y+{Za7qo)}m21=S3GVk3k_JCI-@Ns{o6Z_4tzW^r8ZwQo-0Y#lLVTQ{ zP}wFdd%EnMeA;`FabEF9@I49{4A-qCFB1S{9W)8Cu($Iz%2YlIY-A$Hh}c<47~L2IudtosQON>B>2IxFI=Hw z3FR%XnH-`&$t4jVRPB01U)@g2rJU_tpN2^AlCeYSwM?P{+%Fqiw~h!`Ic+bFZ%Sc@ z;gFJ|i~{V1!~mp4gC#B~N|Gxb$%t)QHSsnsac|-E@|H!Bdh*DO+A|L55Tt?ftMBS!_mC>-qdJ{;WBD@K=&t03><$QN^AO zZI9HGJR=6@=b(%%u`0zof=M@H{4bI^)Yx-1BB)=Amw^=KOQKteQ6U`CWK~Y!XkAR! zI5EIj>Np3o3#Wmvy+4{1$9|(nZsAxpL!#kMj5E=~C(nW}^eoV1*q12*KaHGYK`==dwpj4igm zBc7jmC;o#E!_jm(Qjy+vYE2LIuEkY&73_-bVf8pa8`{zYo=Fzj7oFAnm1|**hlFyE z4>=nH>AFNry9^C$ex|zzI?ryJ2fnmhqh3lR{brIMx-~u45p@dr4)svN-JIt2fJynM+%mOAHq8E>15AMc(@TnsioOucZWw@s_P6`2pI9dji>E9!_)wTTx3*-Eon3oU z$6=HW`TQMxFt6zhkonZVVVcY**DE_)NAc#|_boK9{Ced5eC@rN$`F!jnU`bvLjj)f zQt}m^BPk*@nM_P#O@0QH2-clo##9BIb_{D-=x$t3mYw7exo7RGs-!qX zx-D%IVV578y;74TU)5LvCk~tsNbvv21*NS%?BMl;GY>>9AUN*c2w{;%a#^E#(7~4s zrU}O8laS&6-HbN=c&$zHHD)Ej~Qru6PW) z?+!?Gt&)c(;D*kiDCfM9{%v^$sHZG2)*X=giWj;qMHRBNYPhFMFWwQMi zlebAkrxaDj42}{Jdr@_mY%LMwCJ3&qpW~E0M5E=|6{64Q?0{byQ=8N1@D*2tx z^QDeI>M)^}W==waMpJ6b_Z~LU_g!zLWPc&y=0{}#q!iLsMD0^Q5I~0@G|Ut>wL15u zIFhZ^6RkN15Gr4vRQSB#mLdoA0!ce0A+ccQC>m^`s2Mu(*yS-;db)3a<^c3D?E*;N2v*1Eg+>a z5Erm+SP%LbEqlzhn?6laJA&B9GRSHlyDLI`r!bQfn9k;U46i5)i^8+k*ZpPV2gnJ$ ziNpm$X z3kg#FI{2|CvR4t6-g+LgIhwqK9)Iwts4nLZ-rO}DhAN`1A9N-IP>9kpR~Cj)lADF{)#&?t#2EM+rqb}Sp*fn@e9O-HGGTw z(a}~mqezdE{EYa1z8{7K9$ECwueWMJBOkK;9|j8?V(LG|mZdW1J^(kU3bMT1M1^iT z2*|D{g85lD8Yst$3NllB%^|$79?xTkEQ=l{ZQ2WR2G9vBi{PsfKUPMe?x+;eH?D?- zgA$H4gCg%?>17FipuP{rO80q#;g<7A{kxglxKM6pjBSIa)B? z)g9{1OlOOrfhO`y3a9;8H*~6TBVq*CyUZ%+vexIvlW6@B25{wRl$afZ>!7sXP5WOl zhPN^?h{)Ul0=sWfzLdN4(){8*|FBtNAK{bIV?II#gct`}yr>Q|qhQ+r%?g{bouPevP09f)zr0_{)&qu^^1s;m(j-Ir) zcHju0cMnR&@Robr!@I&6n$KsSfA@07Z8smedq6etgUvs!B0%llb`t$nzVgx2bjdTjwMuy zvPU3*hoQd40Xb~6ndVbR1oDJ)EBT@}gRZ-93oK@F0v+FPy*7>Hmz%L zx>jp+A^T834#aHnEPb;H@p>U7NKBR|EORdv}d&&mj zNXlq$Odb1LGnrl?u1v^LUkJY`Pq5&Mz^Iqlyj?bpqZ3)Ge?0$1ypkR!j}k$Ihy)F% zHbcS1hC}QCNCX(%k7{9Ey1m7Z}(z`~N5T{MaFOl;0LRMwmQ z;cO6m4ip^W!ts(8I0=(WYOs)y z<`T#6qDXZJ*F$UPtqnNu$4v+IyqGvkVb|%JO>HK@foI>UM#YTPRP>{n;ME`%7SDHtgS~PK4?TqkEDm*VE*_)c>KB4%4Oo`&+MY z^!c^*MW=g;SNwxWNGt&3~8 zIb?&3t4v`P)Qf6bI<5Y&v;em17rU_Gh)Q|giHOJ9v@U`Y#B>8Ai;tMgJi!3;^IFG6 zq<4I{<%j4?M&X#{`l+Eyp|5f8r_u<`FG)4yy$ND?oN*FFW=xz0o_0MiL_Bct7C6hj zcrHLL>v$yIox4%4;iotFxT`cq27Rrj%>fw^VC_PzgvOp+AG&$t&k`>f-~o523F<<8pXZSx`1uDrrMrz6-|;R>&l5=9*}AcS@p-L)sE zxd*;J=Bms815s%MOMl-ET8ZJkkCDxp)eX1zAJwdyI{2>}3i$RvZ+((D+e27&zxP?i zt0b*x6qeoUBUljx4m)OCA<{w$Z_EP7z3|{i>F-CNfS5PV7S80(tn0zaKG38*4Cwfd*lKTX`rvm+ z?`>uPGAfvvKHFPIzcgo}FE=IBuF=1dpP@HQ5W#(p`t%3ttio{LFXe-DPsWm2f^b$l ztOOaVINVuP0U}ey6H@XJPEAsp5b$tNFUB(eT(~~#J9`_}9TAo0LGT!z1O&h-Ub|&} z`E_Tq9|4hVm;^eqtWZemawYMmZ8C->T@Mu6m|i!{6-jer`A_fwE*Lm_IusY z#S~ejG9G$Z>05zFei(B$O>l@j<*jFIH@1b7jph!Hf=>rOMF zNQrMsjFd%<3+N-;Yj51EA*x>^QUZwTb7K7~q#02Nou zlD?4uR^eQM2HR3teG>>sw4Gcs69N6xUlj=VGms{hKhcb3V@ zUP`X9NlRdxf@J$gypjsS(D{0lM_}x69G~HNTr>p^#N=^r*v2F`e(3KL$pD71wLZO*-|Bsff!YEy zMHI8|3}Bx1HB{q3*2HW(k0^ zkJ$BG;_1i~#lGxxXLZx@FGk&NB%$pN3~ z;=9Q{Uu8Nk*d8lYQInZIo#TD}H7R6Y%*ee))1`}jFW+C8nF`gYE5tOo!RO9#hb;FsC7V-gEdW@$pESvcQ2p`^sjhi%^Xv%4h=4Gz;0V?JU3g!nA6!K~2GKy74ucJ1HXk&$ zcbNjvVis23#>U{(9M=wFdbxRoE;{OjyjxjeI%-0IN7y{0MIN_7NNIlOIB9SrWFf)Qu{k8-1Adp8O`!*AWR(AR%{93 zg761cn~H_XJ3*zGwQs49X*mCoBw@@;dT~l)!E zHo;OtJN1s96eC-3_E8_@{bEV+z8?dy1KUxIf==h-EU~4UldhN#2+lr=HLWGI9kHA^ zMj0F=`Ur*hM7C#~fB=p-jbJX`QwSXSN*(b!dJvoMunMJ10yPjkoZyWg=T7Dx0vp}k zSXlbJRr(k$rY8*06O)zYwHeZue}zUxtXtm(%7S!1jdh1?Ena7hO(c>t4bVAWuecw`JW0=qsDwHT%om~}Q{*Y)#} z&?*`v67GNzBmolJ^~#GQ?s(ncB90vt5at;a?kYL-#Yu(o8X==-#Gz4I2U04oco@6q7WF?1uzO+*4?Qzul6%BEY*}(8j0U>`6=CqJt9f?ackj?|HEIlFB}D z_#TjD)Qb(FyJ8=Y(5SddQ|-`rD{eLw8n$)=avyqGPIiEgGJ4t4n~|meLX?q3BAmpu z&HWR?CHxbCNiD(-Mk+59;?M)&t`892x4>`zZTbwd-|zr{hh(=4lZOiWJ5wzyn7~UY z(r-jeWZ(y|{uBG7>etujuN^5OV_uAN!{GJ4dc1uGt_zDg8l1!FI`5tst527U=^&OS z`e`3K0ep~LIob3iZkkzPW^?frEnq_6612;h$L(@ens?ozL{tH_5Zd|tIOesOB)oTB4oWeL_f}w{f@b8u*V`ZIa#o>6!QrV!T@jyDe*xl!-=@_Sh(=H# zzK^6l0&x^Ik;wyBWg_s;zN~?v6umriRy^hWx?F@DsKRg zv7Xj=IsI5>>v>ead#A+v3a_80QsiI>@6lA#++B&>WUi~yY#oje(Pt8#A+TKMb+Bpk zNW%5$hn;j6hhtomXytMFRR)NDk+{|2ijf>Tlc^~_@2K5CAA-USt(p3scB#)MwXdN* za%MTjZ)+~M>nbj)sPGz?=Y?bd`PBowfK3Fl1^z37Kt+EL%Hd;d$J%Sc>`kpR@mSI9AayNg&avZ#kL!&-ltnn{{ zfj2hZM9PLbX<0HV0bi&LnUpqmek?q`o)%k%NxW!=-QL2mJQy3B8LXI*9P=df0wOfS ztXC@A|DAbRWfIZRh|XN%0G(spRaL-K%+Vn>k1t-u@&$;Y(zr9`&P!%RikSBT>+*Az zgBx)bm?V5?({LQ2Gf08LJRD0voB+790FE05V}=~hRoRkc7Dc|-{EI8+kM4QJtVWd| z6BPKzr5HDiLd9E%W?=7;ygh(3pesIDEwhZXYauikJgTp}qW#5dMwXb+{+Uwu`#39S z6`NL!twHhw)@7pE2K=$!v6yrd)ZH@Z~P#(k8=k2-V|4!!oYC` z;Gh@2nl^+KP0~;6h(8x&2wJ?Ha@?5fFG^Ct2_5R)ilUm`1_P5BAg%Nz^VsK&(ZG-a z#x($kI}<6RT8X*A4);YCeBS%bjOIFd$cK*dmitUzv2pTm5mFYs-rwapyt=`f9h6!bJQblU+7c*s6C zdkkTHBKJf@4ZyIFC`^ao!t>+`T-lkL#^F#%B}z@wa)41XXp4{p*pa$u3_@6u*)?XB z$Q(wU7KWtQBa{=>XX_nCizZm_q)SJJCQiZgfQ%1G?&C2DDS7<*iaWJ#*2I`9b4IQPj(-lR^K{hT5<9U z5OBp(KW!tMez3mZ!&*-wV6yNsJ8d|lxUvxX5A!8Q^MiVk0KIjd)UASNQ25U|KWz`v zuN#$bS$OBKG@OphP^$-V}!@IrjvDsdWYw#uMu0aC3ERrTKud%$^w|EHiEbz{17QRh;V6 z-S(^xT8^Git|$*x(5ZijaY<2Ylq6xh9GOkmPO7 z2_|afOjzj|)d4K1kQV?$z1uU|54QYi_x+4D-v*CSGC5iFVy>S(@gLHg?)^PD2 zmb4f2>8f|<(i08_AO^A}7ROZNcpsNzntWlfjaLJkCbF1Kas@b9A;b^ySu6SpmHJ7I z#=CPG__$z{cavq-Fl#Z4Wn1PXn}S@kD+V~m%vZ+0zv_;v;?LJ|IV<1r`homo3HLM` z*D9+c%lWEgcRc~OW=mw)mi3m@&>xbzgj&Zx6D_R$8Xn4iy?14dr(Wm&D3>`y(+bwz z7y@2#`Wd}l)M?iBxayaURZN{SCHw=jT`(P0GQ0!tDm~e62VPj6(dhX0m=MeE*Ns=3 z+SJAT5!t$*q}5JOkeu@7@zJez4-zc1KS9by+$P6C5}_ncu$vE~*h}lt!?|jBR zbF^I6!=8u;Cv9xJi-q3(n{=5>XQk|8hT}}93ybl3pfv;ri>*oNWqJwiFFW~-v9$~^ zQJeg<)?nlI(&MAw1dM1gJY64+vebas21&mU$%!y5P73aV($Tr|A`4Fw!?$@qZ~Vuu z_Vl%QgOcTd7yd-{%}&xlLB>Z(GMe6aV+Aea38# zJrh?^cO;y%Zta&jr5Bp8cmXHzy<~M8MG~_U-K4nX%;spUvgsa4cJAl)lWO$!nN%^D zLWiCR2bbW#9Y%yd2e;Gpa#JHui9>vB{6upO#x9pGtg4DE6oYuK&gCxBaNx|~s{!j^ zRgGM+yzd9>XhwEn3LLdNj@mzN1NIIZs2=5&EPv}|Y9J8mOzB8!RzY@iRzJpWoGYQb zGa!^7#q*qBMPFOQHTBN*tZ7NkuPZ$*&THJXz@afU{oV@wEPX9r-E4qfYK=0SDAT)F zPb`95hV9@VOmIJ4ea%~#H*UC|!EBqNzxDk6we{>^|EKeBwYhlXGVepG?nf}qZc;bt zxWsHxp;Cl(#p;xt{E$<9-QLj0oAmlGYc+U&`*_$GQ?Q8!PkrAId#S)f!nq_IlFqWw zO=xN}pYd9~fD0?Zz|ALBSf2MdW3LgpdXS)E@U`6)h_aecROC)1Ny6%t48Dg!DMAq# z7WnJauen#Ggi&(cL=%ULY%Rz5i8JMWTNK=HsYXRHv;`Ftt6Kw=QMeXwmM#2X@_ZaO z&W<#;Xyfg5skmr$@4pB@Y(!P0P&kQ{C+(O^%+mBzK>{H5&3&*@VR>i~&TH;BUggDd z_W@=SRy~p=aTbKm9&z&3V}lPo8Y8etqPtR2)79R5H7T;xSSMX%x~sf3{Sp5VVa-=s zY=u8vC|UQ@KD@7NR&*z`?ppWrnWM3$lpl&^Cf#d-RPskt8T;`>`&E$l%(0YNLRvVt zU6pn8w?r78AcC_}3fyCkd6-!T2)Jg%n_k1D&3ahbx^Ly}E4ab9WSS6uSwPkIYD{6J zRy|VS2=p{klI-S+3xr(O_V&}BK?8bkXApTyzz;B)vD~;13QKo3GHQK~*+Sk;G{p~P zydd6<#~xXU$v#;<;;!B64RAIx*zZT&)n-`IS(FFVUZN=5C(S8JfL!0m3&#Taj{TM2 zwJ`VY3A`2UJlts9+0_)=1Mh}KYxvqvV#eMNPQ-@FSzS+iUq0l$^&m}ra>_BIn`>p> z$E;C;=kcwlRG%BE@N;-c2SQHFBhvXr%R6B>3s#i~HWBpm%yhMs1Fi9W0381mOn0(f zHf0QpUxn%4zu?H1taedw%y|=VzOKrND7C#}GPmtZo$OGF_oTyxvBK}cG$E%jw#m^R zrm;plhczY=yX2Xw^*;aI>JIDV-5v3~a=Kob@@u}dkX+MU(ta8uVUjGSxQg^{#FbIe z3lsov!+hBmr`gpR50K1AgOq>hi~Vq(WJ173RD%Ivg?Ts{jkAqo;o)#?Xy{4N^X~yX zaI@G*ICfMRG#0O(L({GUfof8nEU}?Q5|@Hk6o1jWeF=CMlS5<1+Y3{OV3qjZi* z?bQRAC9#*|drZiFLa|;H!cTWnICTrk<=+J9$7UDWbM~p)-+P9RSng zeJt8wwmV?q#=rS3rX=uJVVE!lMW&xE#lZ*II&|aYP=chFOJUhciGXhXy?-!0LcO&E zk2I>PcIzTcfS~gmw&Bn$yIg7B{kSF4Cb!|cSCPr!j_{Z>64pNY;P4zort!qBY_XrcmMfl@wFPV6wz($katt zhM%xmhoQ6o6??gi8(xkE6I#1P1C^3rtADv->0;~VNUuWb%v*Re*g{y^DNG@FaM%JS z5aY4!SM=exjWR@(KNN>HWfDK7jc? z&Cm@=`TE4GVY|FNUGdpj)N{mav70RzE}^sgL6=B$eif0VDYR-S*5J-}b8_P^^l(@h zP4&jqQXpZuOnMbcg6`wG`z!4dCRG~D#K&}ro#;%x2NhF=j5_*1t`*3J(*m?-b5Tqw zWQn4w1Pj!BX#dJ!UT1Z)k&>{8fhb-7ywXe8Sw5t9YZ7Gg{Exl=gs%Ksr}h6idBHT3 zFuK~VE&RWVQdB2e!CN=b1tF32#Rtoi6W_6Gntx7K{`v8dyVL$34a8Q_H1a;r1sq{3 zx*G{nKj6;jFjWi1)x^y7WLK=Ghdml|%F}Acb57DK88JPM)1b_TATgJ)is>bx6pO3x z(9YvPFy{Lw9P5!Ttg&82XCpAC;p!-jN&N@Ryso=%p*?|l<8VPZim*h(EL#K#HW7FJ zyHk=ft%tpMX{<<~UG5vN#8kl{IrQBEhgFkt8d3;TPB`fh)_O4}mJ17h3_Np+oFL>! z&a22(M~Y;REA}uGM`Z0E&ATLtw^D_JrzF8RlvtO_$P4}W52om=zv3S$qJP(U%mOeZ zqfoDN+UWIGJ!t|?gHQv7QpBnfa@r6ti+tgiW_yr(gDOYuXdws)v+tx0d`SPDbiddp zoVmttz-9x-r4ti=q!qE@%D7?#GdAw3u>G)|W zrTc8*YVmN;yC}X#PoN0Xno2%FPW)nsMcC^k8Qu_G-Ugbbb26Ku8S;0G;j>Cj?XI+b zix~8#{12aoa(MT*nzH_(ahSVc@Vf!kUEi`Vrz| z!0*E?FW`9=$K40K@bZt!1a(~io|E#P=!fD3?PBY^2E|B4j1ywXZpW9O&tU;V)0EFX zk1dbHH`O1lt>b{5)8}{j6plDg!d@mm(&UTVV#~-H1W4M&4A1v`q+bj0*Ap> z)e|D83so2n%dAI)?$}^!xvn_wxcWJXB?K$@N&D=p@)=nStQ&I`YzBqoG@)GL%%Kq} za2sq7QjFG_QbEr6;&fVSZuAs6-FT@AcLP^s)*FKLdTWl?Z7;wSL)SJmdHZx%T>kxp zWqJ>8eO92G@L#wgRx@D*&R_kTCRiN4wltlj=RMdu+G7dFYff#Ig^=CN{X*4~{`Cau zaXb`^eM&Og)R4a7Bg>UAlVBNc(>xCktNp1FtxSHou)ZnxWdy#Ie$4 z7>5OvfCBbE-`2@~>&#c_rwG&fV>FgEDxfYZ#2gnuvMT11?s0=tVdaiekoV&avC7VHg*{*wYW&=-KFe+c z@*HF^@zG)NP23^!nfVX4#u=-sCZ{^!xpN##G%-hP3z_a6Nv6>SAv60c!!Bt%3GC7! zGk%CYLgGH?fKbGUta`2l5VK|4cF^WmT}_FL^WIr`aV1DRj-B`q1qZZ6P$5bcf*3RS zr-KTrO3v5J3IdN{ug+XdobtbeHNO{x4Pf2RJXvgKd#U_GF$!D(o$l`nydm=TWLASI zR;J_Ner=QbB-e;Kz(*}ZamUZd|8A}bb%uLdbwe@r*@jw7X>MV5A{?DfjFPKLcLB>DG+_(03VeBC}+RyM6Y zC`cEmdH5Up6p71)vu@M@5f1x#KveogmouNx@Wo{I?}sS9`nhZiq&h3dEDOJXt5S$D zJ~rQHPO+N#WR@M*4|wy9P9h;f6DOuJ!sV<70UJXNn^m7cGD22|)nF_@Gj$L~j=6pI zd|XzE{w-5!noprCc)^6}h*ZCXVGmg4O&FNAiMkF&=Xw5(6~lE?Lcw|gpo(!r>UfV6 zu9+EcI#~e39h(M;-H)hMN3Jj2uG-eDqB3PqPpAK=T4-MUl*l*Ky+0bqMd-)sQOsWE?UcOijM8?t| z&Bv8P|BzKbhZQ4gUyq8pYOFtPE`IqDE)_BnPo~=86z}h0-Pa&q^t><79U1Cj)yz}N z88-;Bn-B6pAHq~|T?{1$K1|*fp#vXO71+4!A@CEG9tBk7{-*CKX=2+lmwDu@PVx2X z>o2gDLb>%&?fu)|(c2HA@mKz?D*vWL(W;B5*)`w7Q4?OE}j(n;Xj^ z@u0ud(f(;MrRKeBF4KX{V%bs#p+EA^JblnG27!Elr%LT~SjWRIkFk`7ey)^u^8h~P z6lX{y@2<8#Q6inrK@Q)_-vmio-jGWsE#iBpq<4_um>Pr%IBhsr7Xxg!3TG1ICtLR> z7t>rmCu;)M{0+$l>FF32UI8oH^alL%$hO%UHs7c!j#Z;R4Xv*l)7zuc(pH|Y3|E*a zyRH`es!U_}GG(++X!A9NwS-QOypWx~EKs`Q9e&um=-VV`6a8x&F+1CtFJo)cE3kOB zuPe#9&>^9*VCf}4WA6Chbe~C0^bpnrzb=rs1#yU^>K*#lQn$Vu7xtH!G ze@3oCWzFib7m?hQw`V>ab~J(q%d7{jNz`Y2=oi;-@N~^N2gI^oW{7+Y9O#eT?RT@Wei_7~d_uKdtVFZ>_5H;4XWWed+V5xG;g`T}kF%zSnA+|tKjfR6 zFTH>gX;ZOl>!%a-0@0mx?D5d%W~@&Pn_bu!Y&rA(-!+D0zur7j4o5z%*@>EDBUXwT zxNDLhEWnWK_-H^x*@AR0IS6gR z9|ViRi|O#F`zN!E;GP8H8!V$RBKjK-4s>%`R!u zk4gyVu?A;-4u4;gjhh{Bo$TM?)38hIF_03T^A>HVA2WcXeWKl@dlz%i#^`t07m|EB zF$Pr4ygiR@0yu!dKoG;g7zz98gR;IBj#gQF)34pi1u%M|F`hm}b1-&guJ{4R?Sh@T!}rx97KNY;ztev}!PREq0~0 zc0FX9d^53XMyUL(qu!?rU&|zb=#yG_eT!<-9QmHo5z5i8Xe+;eBGsWEN-*4u%@X6W;W^L>FNc9pf{T-=@X_wa^tly?i^!)FF2e6ObD$bCUrD@V zCy7jwek-nE9UET9o7s2&c*XrrFoiFUM4`?2o-3Z zOEj8Za4qd!>_d`;o#Ry@13KL?W?>4?rtV1G#edbI0OTxmAG6Xe&6bpYc?V8~2|*0k ze!`uJu_!^?HR#7&Kj?Y#SLDYKUK zpO?UJKc03w#FSwQ5KCV0Kkh5rKSwI0ta#cO7>mOSR2*{TRHlgd12*xn*s?*9)4Gl5 zRzsEesqulhEW!4gA}KN;ZsBmc2C2q-uUxacxOdE(s@-R6@XHZ{MN#d~8O#O}uK)Or_lUJmJQh1k-xWBgX38Tu&TrJ|_T zib=UvWz~upFp@!SSNJ=1l`{it0!UuqRDo_ez%ay+kMJSlfR$5bY)zcX7MIIHNWH1>ni~bcl<2xlZ;XnU^CWslTz9f z*EHOt$mPaG`NE^QFgjCas;k!av$w*)>t{;V?av9lGi`p8uHQ~gFXX6le&gmeLsl^} z>)5x$)PcqmGTn%uQ1yiXKCDIFo&jQSKmPhiRaI|SZ?L-N)pmWcokCua7B|NbuIBoC zSc2#LQWPtdp9&OuY1zd&iDP_bI`yR(r1azZBgfHf#EPp$Lr~c68<9_97NE+Wx{pBX zHtkRY-bh=r7_LXMu9{oXQzUD53<;7RRt%x@PxV2JaS5l>7#qM*14`iNr4z0`EFD+bL(zREBEI7u(g()tgR{iM1>JYH( z+G&5;;_mOS6Z$kKpAw)4b5+^@-@aj|sZtKL$q1-?`-#f<$zq?!{yhf|$DD`wB4*>V z=4{UxH~Ts;S+HQyZGfb1rEPhW-sjRCLK4#3CE2zeguYi^nl_qPdTl9_f}@s0WdA#r z!(Y=vd8sAUYlWsE$hfvuqjhUjkhAo2+9dMMio%g1$eZh3mSeNE;HFLI%>fb{*O7(N zC+(03w*!=9$sd_QCWsb-Y{nTsrN8jqXuTKNyo_O8^Ze`E`Y?=6Y+wf|?Wz;5Px+V&AnVZw{ ze4eg$4Y;Y@ghTENT$P?x1PlbMKyjiktr8Jl<)PRdgSElckRjX4ig|-ygKcBx z;8;reyhZVy%^F3Fem-C%Pj?iH$?Glb-)KU^XqKovF@d zro|w~l1N+@FCyL1d;Tf5FU*7%!mXxTZUxl^UY{xcG>q$^XtDh*`FKzNl<`!fIKU35 z*~3NYd5>@&*8g58QUouenrP9JHIl2z(`Lm+r`cP=VrtExdBs_c^i)S)^ZGdA_=Crs zWdM=_JFOJT7g5Rmu-(0i;b>gtOM4%f4l@v+i!9Qpf8KF#BWiI1 z*LITo3;m$pf@v#W5#c7sE!M4#fGWl-;H%)VN32mXR; z;ct;dV2aboa9SAGd0($~foX88P$;hHvuuY%l*fv@rO?G5^6~0jCC0ZCW|dwb2$~!t zc0$X}8hWfneGA>z7Bzs|r}sDAB`#hleB&NDY>^|h+$}dXsL3;LThpm}-g)NdOLpnB zZSH;SGhXelgWvC?K|bHtF>$90Ml`oF(mGW{Ku4{;^Z~vjw8Y<)HxnWY@fXIZha6e* z8AsV&X5ZHjqhqD!m!FLNd|`edG5SfR$Mco%yH%o43s<5^yWJn6`PpYHSN#to+CyUk z$SMQZ5eEeJ`-!IGl+yzd(y1*$0GkRGglAggJtRi zk-kcAaJvtExj*|H_iF>61*VQ`oVQ`ZK)-GPd4 zYeK(d$?0CD4RqK$`sTYAFM%u&dIuuNC3(6o7SSmYXBMNu7H`(~POED>o+SpBhPHv_ zVm7!eqlRQh_EnNM{|Up#1^_-{Blab!SCu8(IsF6urSO9kN;iq6yE%LJBwH&b@>!R; zO62N3v?}Km52qaKok+$E)Zz8Y@~L-(A$n=!PS#qB1A`VnF7)HVo%n|oGL2_Q9(~!_$==O16~cW1`Q;FZbg*x*8$8qy?}{ zK77aiEQXDF2zNW`s&(|iQ+nfp<+F`tCAsC%7tB0vQk5M7G;-QsTm&aox&&kCDg@}U ztAC+rI)L9(+1h%!4h(;S3&QtK!alT@9DhJ*Z?)2F{*vQ;i%YhP#kbU(vESKH`2b!J+pklIivrUdR=B z>uiiZtfh>9Rs;!oa=hNR&dX={ChwWRX1>Mm_SwB2mwo4?- zx9h3VnMoc8mS>(Zk)F{AIBOFua_mfrZdq`s)Ha?n_Wv}$7#Yq8<3+1+jm!fCfJwY;sX8Xo+$$IfY z`8`d`jeJukR@qw*^Solaz2SOq0%%Dob0}@Z{_@ZfpDKC;3;ed z#Dq$;8qJ^`V5qo&xZ#3-YWnIGP7?G5k+tw#wfd1-5ET#WlL zP4&+LW85~J23j?p(4_G^U1$lY5VUh9xZg3>JSN5UC`2nPr>k_Ovj+mUQ5uEdn=LIr zSyt`N7tXIdSo&q|FU3kQAl4cV*AZzNU~5c}?CUwq?!B+l7fW+a491iPkp>B3^wR`a zSvu`wCkZGjAr~ix)uxM<|6(NE7EG~B)GQ99EWM3>6XUdSdKNd`$tt9K#o)D2UGwv| zV$@wRY^Q?oO*HYg$aP!(zrOzW?%u&Wn65X@{b&}A z$$<3=K~)jCU~m23djsLaoINU>@rEkg5&vgL|Fu6xbhsrFH6m!ze6?*96RM}5fk*=BiChobt|Fc;VV#H~T($(KSt)B}Q_A9<@!ZtfYvt2?^C|N-ZO2}y@t9D2Lwf#7k+O(4xcT!MGGH(Fh3e15H^8k%GqJ3HLk9XZvg(E z1B4A;Aiq=(-w-DEvYge`4y>shc={t$^*kQeh%b#sjQE^{Ui5qlL5Q6|LvI%+2Qaqi zRFw&-OP%sq?*H#$R*4C)j+5f`fnsR+L3s6$pDD8w>TJ3xR6*oE;~y02 zMr{l&Ny%8fBJ+9eS_%V;JVFx{vkexNBC1mBQd_*&J^t%LT9G2!5f(@Xm%AXFPbqX( zGETu*mM79r2aD>|6dpHHz-m2A1?sdApQSY_5WPlz!eZLUc=-6v}tx*oyeN9!=$e1 z`0EBIz0!+c=d5`X#XF87a8afw(%Ck);_pvM956@Uk>uYbHj~`OEMUqG+s5+)AU==j z#xeiWCcDxr)zO2lE)U#H<~Z<`PX31wj+4nc#V+JCKQsKjY`Q~owC(J9+p@b<&w)%% zKxKYr>-5 z|1RUlYA2TLFTqJ_fa=`Xm;JRLzDd3NlA>$lOE)kx7wz-*6LujO_3_#z4%5Cyw@Jxj zJpB_l6Lf1~p+akHzFb|}y$<^YpUlfn^b}x102{C{k#@R_v~SC^Z|qt=fAz8h z3*>SKh}x4$Dk+-0|KR;q@m6;i83{@1(W@hpda4WHxVq(H{1C$#PI!k;o-w~ zpP{Vu{YSN>&!or83-ubJkEacR1TZx+ZsThBqRVma#vN6!!zs%#X%GD* zUe^FS_d|KJ&D*uNK^@Rop1u7KL}Lzr?sLb_+f^Jy4^VXes4R`8W=$xL&ik$W8+V5e z;FFJ)tT~F>F|as@sW`Nqrg8iJyE3mKJ{PbvPy?Y1$gUz_({(!imTJ4- z&oW=BH?N1)!-j-ra_{~IA$}B~4;dsp@lNi-o9$JL7Niz?jp!)sf7@ZoHV;f$|Q?*cA7eUM5MwkPqVC!FHMTxtoJ7=VM~bN5|xP+J^fa z%ko(MYZc}%7IVBdP5NFB-}lJxLxRn{yFg@Ezo*C^YQxj@7b(*D!0jabdY4EFC4TYg~9A~TwV(4L+40_ zF-vOGj4I8hzva3vo#xTGfOZ?$&yYKN#Gjt!-HKFU+;m z`G>#2hMRgB)%pz5E@w^qzn90oS6T-}8pPEk2n7QWj2T@z>QFJ4_SEzZv%!OH93>sRma?Rh+SX@oNEMN&L&R3|N)Rm3Ji zgGEvQedlRS4vD2gQ^~=+#q5xKDDZYzAxc2|f@Q_|Zw`+l5tvcrjBUvu*69V}*v+7K zdQtZowe+0vdyco7^?JJ0*V)cM@O62=TIh@X3r!qz@SlvP;%m0)}8rw+_fO^N@#@bQQc?KYReM~9Oj+$QMhb>wrInYqUS);>h;n&q+N$9vl*h0Y-i*@dt;x%2PR030VA#llPSnlo)R#S5u+Ef z18b&cdpDjZ?%xN&2x=P5dy$948Fqj8-q2hN)A22SjbpfrRa19+9F`&Yhxnjm_k_m`&fdhRZ!l#@M>S*oT_! z(N%7LHlQ4LXGo7zD>e3Y z1rw2_k@mHTB&L72qDOP^Wwfg^j{_COx@KK#CJ_0QIgre=f4~sZt`32@V^!wn({ci7!)eBTrZLbXAF#q-LtR!t*#lf9G*<{-rN)vKmgub)NVYdy%PitL?+N{#`4(Z`Qu|VXr34saCU0Q_d}<%iYWa z^kR9ALhpWVfK2qQz&w>*O2~*uHntYz+e-Z;N*wQ% zGTeuybh>^^)~_@_e((?y>pqri3e+@i7W%xH^()H_=;+}E4ReKD4y(pb2!v&`Oiiuo z6o+`sz1^CY|12<;la|Yd{>Mw|7P!~XZEBQK`B5mfqH-?p5p`v+m}hV1gKEMfd)F68 zNES~b^-r67an_!AUOf=)U@MTTTma|(AqMA1U7zIiXF9W^o5X(Jq`l+9s>U-HFPq2@ zk8jS2nr~T^H@tjotQ}jqaX$BFG9lqe+HUQHvxv`FGwOA&Ha*w@hMqX^I(Os-R{=5H zH!hmgy8##>8TgC{1M}4<8;m#44@=#tFsDTYm`h@v#Pl3L%^~c+IgSFxYrNVBjv&{Qruj+Q8s#7VW{_QUD^r~HY zN0Df)OQFQDK6>4CLBMP!_y4NutfQLz!}l-UFa+raL6nZs-7TPWGfEnyTUu&#gER;T z(jXmUG>isCX#uGbO8R^7^ZnJoJKK47p7YN8zOL7`tE!~W^64zGQ?F(1P0*7qw`}&f z?Uw4}WWlak$mA`F&A`D_Mi?hi>cnpW&qR5%E)&1wDb(2S8&{tbE-r(=oPRxW@jK~o zgsdHqMR?cdYY^QvI(?C#`jI($c1}4@&?Blv7qSIeUP~Y=M()rEw(qNErqi{<)&S5onNICDYduL0s3aZEU!#)K%hC z3$cH`L`r6D>hQf;+B!=VR4=UQaR?ZsT!RWg8r($2Vb8I)lZRF|aztVph4G@5?@~uy z+^tWmh%zr{VefoTMt*-Ag-Yrv8P6$+E$FW>(|s3Muy(G{xl*DJ5`bDE912CEMV_<_ zK41!_37K=(6V=)E()Ta^;9_%JMc>|XGf~s|WsTcWezgn{@gJriQ6M+riql+CX;C|j zaP53KdB0TrF5#3p(~RwR^c$iS@?Wy+^G~Qwf9e5e%l! zm>o!Y?cPYz9U7V=or%pgF~`hZLuQHC zkb7RuyJ3r;R5)&^`QW*xs0H7?gm;{{bQ*8Huck{qB&)2l+R&4HqBjfTw?4kxx~N++ zCk!46%--Z+m#LEA3WBpa+WN{vuU>mLYx{8dD&i>{ESo9sl)wmD=VDNjEn? zGS<+yUQ4A}bo?23*}DM$ayZkcV~4)v^TDVI_LbV&iOg19C0{b!9|i{M(p_52uYS| zULbO$;keuOSw)9(vlk}Gs(^lqLzA^ZRl#Ze@ehYe$tSgiDC)HcNp}69tBjYv)IqZT zBT4r~i;a+lMB~`6cOOjd6MDw9@yuRCqG|mO4$r$t5BJz1ZEiW-&Y=yXs?=%pX_wh5 zY;SZbwuKOV^GFeI7`tdN^k;SN$x*(&40!$%h0j^<<#5K6j)1$}eSOm>L!OuE6PJOO zj8pH$x>*5XR;I`o(qhHV%2Mv&odws(hE-ax&rae(*<5$6BZvM4NJKSPMtVR9M|H^O zlq_Pf!u?U9@F zXfRo@hKuO#%Nd^~$fQigNS<4UI;oCpc-g0bfMus{<-(K$-GC?d5=}OygjWL>N6Mwaeq*+tBZ?Ljp>^2A$0}Y{VXHbr(MSywFyA z8Q?I}S^QG>z-&uJM$$>5j?{H;;wU<@Ygue&5ZOw7pKubiQKm*?OMBakZ`~W$)_mKh z$$ZWxbr($~Yy6cBF9hlN#5u_CD(sn!&f?QA^uca1fBF=Bu*o9U1uA^~&2rpp9W{;m z(}A#O?fcdtQ005kW`jcNaxt2*mPM7_v5gm!+<&{*NgB>ENjUG3-*#4AGZo}(KQCjF zH&@R>2J}r|gwIZ;DF_8Bli6+uwD|S>y4~MI-7}+Ar>Xy|L3?5Nl_tAuc!nv{l!eIj z8alpws>Sy-fZcMUBm`&BEBua#E5HNR@ujemdp)1&Z})}Kvc;@H$P^~gNO2rdLKs0} zhG`;@T{ue(5=tv@CW9l!G;s&bA!^w^KU?wGj0a`!TTMasgOOd@^+E{I0*VB?Zwc=< zA!B{QRFhEiUx1^Jkm=6AyT>aq*RYr=q$gNvt~ zg=YTgU;h>?4wD~&bHE$AV|#t&?uqekTRnoC!6eK;?Is1QF5oD*;gDD=-T7Ky*}RVG z#Cv~gQ?t+z8R3*4G?|We$t&ZNDxn(u!#ZgBPp_v<$u4)gq$cgp0(J@A5_Ytws$(!w zq6?#I?xJ3aT%-A1oiX*k5b83s&%Bm z@@|{p*d$rL852bj9iOLc3CYUb7p{dhjZC}`iv2n=qW1KZggC1sA@C%}m2ei}?=k4p z!wxjH)@uE}OQ;`Z31|@B{u0{mB|h_u(vxN=lBu1}-#J8!@O~fs#*0>!Ph-|tmsS-% ztf`|Pk;(&A_xvn$(=jm47JxV9|HO^ix+X z%(3)7Ax&}yxw9Hhy7_DOgNP6%Cm)N5#FU8nL1-50^-w0ENzlGy|S)lb_)SqL!r8*Kf<FSu09-@ zM~BQ?Lv))Z%|kN%3~(r045`$cN0v|N9m<;p`1Gsm6$z_|kPrwylM8y+LI-sj4TbF6 zv1HB@bTl^>+Q)fQc2ZL6X3Xt>z?fITJHrv81p55R9|&N?3A|E9mMl+Xod(6sT{$iH zOE|GxMV#LD4eaC%38fYew`D`>SRC#AQva$hORN#wKSR$e(^zq{cu|ogGw^)|FWLNL zbROEX{Y%HCcoh!rC82JW5Rpp}PYKA_IE2qO?xL4u{CpMD6&T;@TR&RyFv%#%& zXTwdgiUru7rb!*tmXO}5Yt-@|@hzFhEWYKX+4b8B-UE4#{5C~2n<+cY-%KP6$l(;+ zD_BO^2vsZY)b7;kXw zo4e;vdg9Z?EX?1GB}dIVs?{wd*(`#Ysuj!Mteyl;gg@Gx%#(f*09@n@bdOY*x;+`N>^${Z^V_vhMS(TR+=)N2 z2(0?vbX7FNdt1~q_Zx^=$D#xSSlIWa!ELrW9MNO?NlnQ|&CF$sa#4zvXyZz6U+1l) zZM>dSC+bPjn+NyX93Ct(3BS;XigOo6adN-s@~I8$J!z~Gy#Cqs(6QiUvcQvXf8$j2 zuEq(ls5Z8sq*D*T`%Z7|+~&00RJgNcHr0^Wq9ojXb8r#}td!F^4=tYw_X{%- zR4;`OR7|J8d;Us5KLGjX@<*L#npeY8_ly8tsu`$8nXmos{yk!7m;XeWW2(nM!yr;uPo`u%0{Gu6?I+9K39`U z<#b5Y0sR*NZq%XlQooxYDPn-;0-e#~vP8hnNRip%0rSjLxCH1#AQk!EDYV{8GK9iE z9$o!|@#nd{3j~stxt1zq>ovts-u9RYrC+@kO_9eTf5o;G z#FVKLTiRI(HJ*7lfgo^_l|8YeHs&q4FWI6oIr&~rE3dDkx|~+H{Dfr&R$4meFse%F zV)jasB#od?W-(H!{oE{UY?7Bh>54N3#gTF1Ue$_U^+xj0*B5Ed=A}?hi02Z+5An?Z z^uH{)XU3Y;d}LYj4jcmHT@apHMBScmCM(ggpC|KBndc?Mnx_5*JXxu~0FyHEf%(cv zboD@>IY1#NoMPNNv@(%gPMUYX~H=5t@X@UVJ~{@5~Zv10qWG5`lm2Mqmj` z-UXb0+)a*4$%+!^IE_RH)TeDtNfCP`&00(Ozc?KkOJKq4>> z6{B0W{?d8eeKQKU^*A4JvT~FNH)sQp5-+j-)#{f9`_0uhNSS1{4=6G#S9=;g5%s7 z2y!QC`C>6_ivo<`)e-XUlSt|3j9q_kcclihvZB%@iwrS{;6fhLthTHcHg_eO*D(@& zSuzlZ)tJr%iHqW*s6qbjB^o&{%G3v61@iuPj}+8w|LXhSyYHbB;8iCQvjsG6Fg-}? z1glWL8=1~Xe<=04eTv{}T6tE|duHwqNW+PeEUE?Oz+akAz^gh!Rg7mWy~5!3mFXqD zWq`rQZ8!2fCvkF7S9%F^{DwMh@JEv^a%YQB{>e3*BY~~6h05i)<{|8c!58#|nHGu* z$71;dqjn{Yp+%2;t6WHIp#1m$W`~)1+WXg0~@z>L~_gidIIPUf=yj{{SVpvJ} z&Zp&wMgZib{uQw5JOj$-i?XKnA~RI7vVV{N-gATUfQc@WMQY-|SJoE-gp5Cbh=AeY zmCjWS5T0dy9QD==KupW%DIfUl=CjdX!Iic`?sr4pISUMeQZPjVfHZk(fzNRKFqroh zV7WB5r=EQ$)P0(;ZZq)U9&8Gy;SRYP8)$Y=9(h2Vlf_&)nw?R#1CAH8nMmwerI@cn zUV*`fQ zUrsFAw=XM?$$S1NFo=Kzo8q8H1B7Dglfc_#Kyxm}V2!UrZ}_l18RfR#PXWF>1M zPvj91c#eaJ!%Xdv0&MFz@;M&RO`yJQ%1|n-ybV~DfFT1p3&Wzrj>yWya-eR+Sc$wX zzAGoV#$T4ld+&6P!iRmer67p?T?j}$_^>`C88A%igYP`^7YGZHnA4IdEy~`e5?O*w zbJ340Q4k3fg5<%}U@%k{%w8(@c!n&Tez?ZeYyP#28s29mvlD5w#3=F`H|!3P(OEDx zZGAC8Q~f!LRea3@nU{ipl&2i(1?I7D_>5&s7kc^y2uk?y8WZcfPZ8Z?6fdQ-7i)bO zA1l{}X4CWTVi600ziu-Q5T=<0z5yWvQ?lm4=Oy$Q#qqYc0GXKtOdU`Br@_!-Gcqrp z7U}8i%%k-2^JhZTD|$eJV(*83+t!jnZ*}~Ena3MF9%QTmBF(#MUGsNri~1#7%3uUl z_$9(CD7}h%)%*344*JZyN2dk_O32cppi>`;IU_CU>J6n8KRJ*$ zV(sAl`SI-U0R26W3I9U8RBp+G-O-NUz?WZWGZGAf;woG^iU7s|jaR8em6 zroVh>=b1I^Pr2u_S34nqu;K$Jv0H+>G2s`V72---l$fW5b46hhG)Nt?2(;obMGzAP zafEOe;CE#Qi6CY`as|^Ax`bz_0x4;mGs50gAVFn%`WViYS7z7m&QJg3Z}u~|fK0JL zgs24T{SXwxX$~DWuOCnnow#s&1ek@yuJp~>gb)!6IjVvwJg(*9fj(ZDI($hZWS1BW zCD(~v$UZ^)_<2wU#?S@@*Z0<-SPhq>c!Jzy8sokW%1D3yqQLA#$WPEzJr~YO-7r4( z2J{O4%w~y&hYPMMNmEME5WhfrV-)ioos^Tkr6p}33@6c-r#Fmu3BgUnl571N9&Vd= zKRx+Cg*{1OrjW~^WP=gaa`?U!a%OyCWa$J=4kKr#G>1Vy^HWY^=H3Z#yA&Vps61L? zKx3ij6c{9rKO8~xVifZXbA(uXhOy(7X7Ttkk3B?Lpto0{*$GF4{&fcqwJnN(4Cj9q z6@PSwY~iz6M>r=d8i;?EDV31%GkFz*5cHLkJR{dqf3ZTuPifKi9c^L4jkiC-urOzF zHyC+9bq_w_{&qN&8=D$}$B#-kEXO61g0B-v_Bgv`f&7x8eXGo6jGAgj3Zxjraauad zCCNe(V6#%H1rPo9+{js(6hiq}Q3~7hZp{3i4;~vE=1{`uTpr6pRE`0UZCSwXbckSl zTPoA>`DQ4JJmL4l0r-QL!sLs2NwQpf@RPjzP+Bmsc|UDn;69XLs-nM5j`ZijL*b@D zr%aHr#u*W;<)K>A@7#Dqh@SQdvMHVwJ6=T477Y5J5+=^e@kqip!9zSd^&?Ew) z3rpE>vPH1`IHenk54J>uXAVvx39Il(L;@%m54P^pb7QJ(O`<>vgr>|$Ht=WxSSZ&> zUYS{SI@sf{?iPc(*iFBjoSbwqT#o)Jf*t_^u^aJ+8^lLYXx5LD1R7(S92q(A z5RE{KICA$XSe{QV+0m5B7=y4$+D@31_Mha zf>h4rbHKI|ef*YmP5r81e?nAhr*I5a;_yDmE>0=9sd?$5_*+>Bbe{;=gk+3y!^)4v zJB0Z0AtiL`G}DrDAO}1TTuOoX=|8g1XCkaWhML&FcEIb$tSULqJ9gr(Nhb14e6Z-k z)q;Mg)A!*b<67uEQ8yU+K~5W0B>ixMdX?VE9LEjDU-4*0cFaRrsUX-S^)kcIIk}Q? zS|nUn{BQ`o-~ai_lJJAJ65(~^GT!zc`Q}hL<{=-Sw$K*6E+LFo=?>(EE#}35wS9<= zgP7*?M8%fR=E=nc>wzFU7~EvCF?~2#Bd}78Gg4$~v^%PK(_Z{jze5MPXIuXkgxY@# z0#T388Zm_gDwGvY7!fr*D?X|u_GgGYn70!fYbKOpLpUF$mN7>|nI0XdmMN*9kv)s= z2g4g-Y}}+1KNUPg94qMrI}0uXH=CIjYi~yYm%oDHZ>;|tlpHgNykjgUr&6y>!wkm; zG~7{{41M{RQ*3lzQCC!8@%&H}MdPEUhRz=tyo2r=sN7-6SOmP>J~DI~t136pAUH!3 z(t+rzis&7tAuG|!>#c#b@B}p9X{p4ZaPfEK+;>G)WydYap>suDtoWDk{#g7!!eBP2 z8Vxn(z6j7~L<>{G8^e2(RV>ZXNA7{MY_n+@R7yA+7Uvv6VIA{)kTiRbyqpmPQRZD* zhZ0b`fm!SP=d0gEWe{LenXkg@vqJ~pVJ(Fb{h8(3p6>m-uit~~KK=w*kF#V{i29=! z%Ww&9(MWJw5zMo5PCyfp|CxmdX|>JExCdBz=W1(9s)6&ZN0O z)|3kUDjlr;WmwH9FL%t^U7(C+Pay~@l9x{rR#Sx!)lq(eEJ{!iOJJUaghFNdc^pH3 zcuexhQ%94Lh#A0Ht}5wkh27y1w;)BQFu$!NveZ-%LyUbkfmjTkk*feK?^D>}kx%zo zzH}*Lj4h!IjS*yAvKJK*t(fsSl)|%hkH2o%=8~I`H zDV-rh=T0x0Qg942(qb}fhnhejf;ts{62w}dfx^d27LUR`EhE1yZfT4k1qQ>T6e&7; zQKF~BQRsKD+m=%?HmYuM+z_o%>3q5u5Jv_*8@ z#VPmbu#{)Puk+#oo8RGU&${vt#`f>I_KtGsTthj?Xf+VuqUe(@iRVZ}t0L0Ht)_uzp$)LW%bXa=)ZF(C1hGS7io zot-8?&8~Ka2tmqGF$M|8klAobxtqv|GiEfQX_pZ&mzBRBj8;xAB>z~?Jd_P4(^0x< zQjyq+*|es5$(#b>-rqJoVwnZe0R>1x?oAK7y-nh7^L?yP_Tkgu~FfeTbK zaODGjIYE<5)@5G|k8}1in%4%j@ZONVmKO07%lSv|XnhI3SFUX#m{*Huxa}pqhju{) zT9x7x!zw(h_iCpNqQ3<2`?r+1V8C#7VwpRszo#llYZN{}Yh%PabW7dapai!M8$ z>#`_V>D<0qkR zPMO^uszg&x9?|y*6^9+RTt!n}TPnevs;I{pm&P2QXMr^`fQ~An!avbIqDB|P5oFyM z8qPryU6OZ^%;T`t3})9d7UpS`E+ZfCP z6I;yr9V6E6bFO^EN_0F!hFvDQgiP`Hfo|ixJ1G(<7V+*s0KyE{hEumTo!wd5TZBDP zwsI?27WRwi>MJm^r309NHA7;x&}SN$Q-F`K!$TIL4HR(2v1;fo*bTJBR$ceWn1Uf^J`$ zi$|Vr97CCzuqJ^toRLt(A+>WsYar|`3zqqA(rKv$td(uKfCYU-yfQQ1-k(9k&Wn6rTjtQfJsNAt z6vgE^!!Hhb=0Jf-I)GtXe$e-Au{SGqaC3v(?n6}Nn3Vw)Zy0=>A&PT4Dpv9Qrzp!X zO(|wSYTr9wH-f#e-W*K+2_gqxP8P41b;%r~aypeHN?8Jd<# zHtcqj$|)lbki^?LwL8VN_(24rSFRJ3SGh_AF`->R-r<{!?_md_^{XQ1Q>NQ5q2rJ4 zg`gj@UL|APIIOf1p(nltoXjr#PZ$zg0JtV~!2;XBs=znJs8}HpXrZVZNO^!T+hGjC zN=s8C@yQ{&eqG@PY+I#e&iHlkl(&}e%3)xu>3$|70i%r~R>3wkU34UgW(S*p$6``2 zkxzJl;TtwjMn;l1;_5MO^Gczc){9^^quPMALMr0k8rHix1C8n@XRfN%36;P9HG&u( zE7mhSHaX)(wL+hQQ=*ggD^SQ{$MW%6G3k)KL*HAc;?wvBVq=yy(WQH5LnXZ*_DUv? zqmcON1{9+oJFGNl1^gJG4+Z4)rg$owZrf@F_z|_94UK})10HVyx&$oV`j3V+Xu6) zVsVGG3R7gNCd~zj>%|N=l45O(f81fb!7MKUWicvlUPB5>fW-xu zGX^h0sXflE+4t`LqXnc6&SCbOTisQhVxf*JGaiH=p+EJ4=9|K8H-wan4H5phkO(nML0>`PXoF=H; zY(>z?A*my_5$q7%GGUhpYU!Sp+HV2_sC|Ychq%7MdYp8dicv{I zAdv^?1v3E%hXx&nopLdVr0{F`8FUR|3bI<3VB$zjW`JG_CJ4W&bB@?Czcnuz2DNN>KqSV+vo4m z^Q*aq+^o;XBuBig<$Z5Ws&GkJ6;mOGih?rxJP9??Hu!bLdaQf9I|c0zjpZSaZOtv70D#~lZ$X0)Kd0x?mohp4mF<>@dTIp_@*G;n$8kjWt-e1!(Z}8zV z`2_hD|8xPwpU(|+Z~p9Wscdo?-;j#zFy$EC|}&(Z$1w+D*F@IZHwcnMm1pC zV%V|gp-G17?V+G@GjP_@&!@7?>S?2Q$9f>c`sq7qj_21LrTxo1OFvX?*A(l`Lf7Gq z33~Q#$n3%t*0>kDNzGCv>D77o=^M}IP25zJl45^9CB(+)O_VY-k z_iPfiLR~Ele&4r7hg+4}Y%;DdDL!Ey+ni~Cn?dQgG-fS%VIKXpImEKM;(6HseCpC$ z&$zAruqZp<}dk@-tM3m3BCda$28YdMF)ALwqr8D=9$W|?hbgR#4mQ#3fNk% zxjJ%`NUKzD`;}zHDKP7WOXchpn+&5IL4qL(XuI31Xg%=oM(TcOK|+p(p%pHWH~9)1 zTErswV*NjR%VxN=uidL-nU=@cL=&Wi6<&qlpmo7@iv$+3&f)%BIJVlG-?nFQ|fFN5+M6$Kd z00WWN<&!8b!urRXvhA`uugT2{xRo6@hw~`sJazHR@9VFBrddw%^qia9Mc=C$WJRk} zgRMJa@jO-e+dLmEJ|8BrPv%ksboUUEwo^y)s&Cr#_d@hEjkiQ!S(o}WQj~08w2}zc zwk_`-MK(_Sjj<#%;5G-G#oy4sV-6>^TcvW0*YFftvGwOru&U;v`Bz#meEEsdJrqAD z8RcT6@U)$Z-{P!?x9kP;>z4-y!f*Fzi;R2b))#uoO$KQ5v_D$&H!Fn{soc?Z;i&H& zrFE~p=5xG`Z!?~38nFD(;F!ZmgT)Ot(h!~(&`*^z@5$uW>`@#_x`IX3sA0V77~@h~ z43pV2FOlLY(k*LbKH_Z0`O$Ax<|o!)@pc)P@;2$8$;eAF^d|AHE!JgwpzHZp(~DN^ za;+J9zr7@>l*h+*Aj+2*t-jC1bNSbD=)vzTN9@$2rc4_O-sKg((ItMyujYW3_ z9{eEhDc*(|_uM0@0)35slYaB{8WZgp$yuP?9qX08#Q+CO)I@(Xh~3mCC7#RSqJNq# z{?9`toq)X*Wb+aScQFfpUm}*R)M?{lAsoX>$+vWLr9#xo#g-%DYwBA|{&zIT+Fz@G zaVZBeM|1_^ZDvlO=RY6MxH!+0cfS*5i#m^%9E-|v zMW=82kWl@i_@IFdJ_{NIMHGGGQC5pf!o7G^V#avZ$DW$G0rGDB=HYA43JG1v74BWT zfeY!~SJL85Ta>;;p@BeuC4N+6mim$)HC>^~VtP>iRwG^W z=~Sd3QA0etN$uoVD?#vhieUA|)R2$Qx$>@brc3o(E(h5PB=2ilc5X#&1J(EJSf-9G znc}%o6uIvuK^gs-hQw1e=cPXLs^92-@A(9!t5X^=R=TG-KftLSxv!LiTpO<}=Q~jENsex#}7Exp5j+!fX7}A$L zM|f^4OuBS1Um3?c zKjZ#cw2sGJSnbr3uv-xIKv-GDl-fa;YVB6MdYv>`CMj4g?HI4}f@(APwXk<}$}?TU zREaiJjl{u;V(K+lDl3{-=f4y^1_ir=L7bKg#`>@Ca&|w7xn!oJNi^76MAcC3FXRr0 zo<0pnq2sp*`|{AgYHU1HM2mP|IE&HLxniC>31*#&4u(D?WR&DT9-H~U&YvlzgB%8hnLFw<-bulj=e>%eTLMnid)~CwcYbr zByRGhc5TWA+(a5j-JZ!`1Ezvxs_j~v5e;-6=zQoN*Ngzj2{pNyYX?V-DXx$!f&biL zFi+&5x?fqyIO{~d;R)EBx0SfM=AQMG3QCbg*#3utop4QCiMEV;!)s(yi!0eKbC0=9 z>Vgg(y(Bo& z8W4TEhQZ>G>sdP1(fsF%4zZ|A^#sGQ)#YQ=m(nYPs-wixu$A6DeiBfv|9fO^Phy=I zk;abyp73J>t+$xvK|KJyIw!kc$YohyqGDBXk42t6nYPmV_JPEefl6=Sn(ZL!GC;n|xiZCANpy@sbvP zBWokgX{J&}ic!>G8s1>0YkT=z!au(5;xpB{!u@KvxmaVwsav6eH@uBxk;>Yr#LV_n zpwORVi?)#a>!4!=a7Gp5WhgvoOn%Uxvi9+Kd=N>LS#N7S;g5$J4yYVW-ge+dq1zZxDXc*Y%e1+z9@F6IjI(8UTIKcWn{&@nga=VP z!^k6sn=n+NgfI^TT2g*C;1Ykok=%Z-YM2Ml(V_=5@-BEnm^bhAj{~l}`;ywDz%Vk< zne%1(S+e}(z(G6lZJ?VO9E28wCvb3f9aV*$z@J1WhTj~(a8iA4HxffgJp7r59( zW@#3?%x3?w1sRRRzalIyd~A?wx+21WmYlggl)`#5go zkQhL(>UnLDbuTJW1MyVI^X25B{EUcRBVoWsZfQ ze*l2}Sm}aC6)elx>LP{KY`o-+w|?Jejp+*sVdj5})+dre@=Dwlte-+A;)64aQwe@u!;+LTmBJ3&9ws3ZQt5}5OXEpF!Jaw3|Y6n__`cbPG>LmvE(-tafwjxQs zjTY%QWnE9t-V+HLa*m7S`uOktbMA+UGWCiYj0_3RE`Cw{;~Qv$E?mv@$%mInsotHG zy0Pl(d)pUg+f>wIWr&Y!OFC?b<%ADEqIWk$Io2`zP6ioq&(Y0N(-JZ#BqJQX;LQ7> zq06dI*y1Ni#<>(<3$@}K$BcfHRD7Ln=l$>8%7NN)pRO^^WL?m#-@88QYvjmmaj+cI z$fW!1@?aLx*7sg%y}wfUv5@IE9aI8;uu$CSIBdA7D#o2Aw{l}jZk1Rw_Zf^VCP6Wq zzyWCX?&&8!!cKd<)SnlID;Lu!hLvMwa*M2J4F~1ls;Ia>KFkD`jUU)^lwsm~JbXG% zup`$YiXIR2=fqZ zX(yR@- ztgo5HhU*R}kpV(TOlV!4HF~{7T3pZeZtL$A;Pe0eYZN7hXz2sTcu(5P|IRi4 z-p@a7!b?J+x0fk5wE2I(`@kGoA$(A32yLxd{{Pep4?t_j75)BUrTc#<7)`Vf8Y&lf z*MDe(J!m25(W6ItD)KU~{tujC8?fG+5I#xzw=X|D;@<=9#Q=S7>o;gXH1J;j&!=wa rqYs=2n&)&6C8q!Tq-k&L+mPMmuVbS}gkOLsJW^56l>a1a@$P>C;-y1a literal 0 HcmV?d00001 diff --git a/_blog-src/images/2015-01-09/apiman_4-redux.png b/_blog-src/images/2015-01-09/apiman_4-redux.png new file mode 100644 index 0000000000000000000000000000000000000000..b47910dabfccdb510827d17b80bfa116223a4e54 GIT binary patch literal 196462 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

lyJ_)T*n)?nF~7?M&L#~!o!`rgpQ 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 BnoIxy literal 0 HcmV?d00001 From 0818791d9d6dd1fd3deb123a1900ed011f5ed005 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 13:10:48 -0500 Subject: [PATCH 12/13] Update post for Impatient New User post --- _blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown b/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown index bc37288c0..6e6e9f17d 100644 --- a/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown +++ b/_blog-src/_posts/2015-01-09-impatient-new-user-redux.markdown @@ -118,13 +118,13 @@ The sequence in which incoming API requests have policies applied is: What happens is that when an API request is received by the API Gateway at runtime, the policy chain is applied in the order of client app, plan, and API. If no failures, such as a rate counter being exceeded, occur, the API Gateway sends the request to the API. As we mentioned earlier in this post, the API Gateway acts as a proxy for the API: -![Diagram_2](/blog/images/2015-01-09/apiman_3.jpg) +![Diagram_2](/blog/images/2015-01-09/apiman_3-redux.jpg) Next, when the API Gateway receives a response from the API's backend implementation, the policy chain is applied again, but this time in the reverse order. The API policies are applied first, then the plan policies, and finally the client app policies. If no failures occur, then the API response is sent back to the consumer of the API. By applying the policy chain twice, both for the originating incoming request and the resulting response, apiman allows policy implementations two opportunities to provide management functionality during the lifecycle. The following diagram illustrates this two-way approach to applying policies: -![Diagram_3](/blog/images/2015-01-09/apiman_4.jpg) +![Diagram_3](/blog/images/2015-01-09/apiman_4-redux.jpg) ## Plans From b67b6d1d18fa1c300d80be0c547d22cabff71480 Mon Sep 17 00:00:00 2001 From: kahboom Date: Tue, 12 Jan 2016 13:27:47 -0500 Subject: [PATCH 13/13] Update index.html to only display posts that do not have a newUrl var set --- _blog-src/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_blog-src/index.html b/_blog-src/index.html index 0273e4ce1..322b97499 100644 --- a/_blog-src/index.html +++ b/_blog-src/index.html @@ -6,6 +6,7 @@

Blog Posts subscribe

{% for post in site.posts %} + {% if post.newUrl == nil %} {% assign author = site.data.authors[post.author] %}
@@ -23,6 +24,7 @@

{{ post.title }}

+ {% endif %} {% endfor %}