A computer program product, comprising a computer readable storage device storing a computer readable program code, said computer readable program code configured to implement a security method within a computing system comprising a memory device, said memory device comprising a proxy software application, said method comprising:
- initializing, by said computing system, said proxy software application, wherein said proxy software application comprises an internal session cache and internal logic configured to determine a validity of session key values passed to it by said proxy software application when said software application requests resources, wherein said internal session cache comprises an internal data structure within said proxy software application, and wherein the internal data structure comprises an organizational table structure for storing session IDs, session keys, stale times, and refresh counts within columns;
- retrieving, by a computer processor of said computing system executing said proxy software application from a configuration data store external to said proxy software application, configuration data associated with said proxy software application, wherein said configuration data consists of a refresh count associated with session key requests, a refresh period associated with said session key requests, and a session ID associated with said proxy software application, and wherein said refresh period comprises a time between periodic scans of said session cache in which said proxy software application may refresh session keys, and wherein said refresh count comprises a number of iterations in which said proxy software application will continue to make light-weight calls to a resource server in order to refresh current session keys;
- calculating, by said computer processor of said computing system executing said proxy software application, a first master refresh period by subtracting a specified time period from said refresh period;
- retrieving, by said computer processor executing said proxy software application from said proxy software application, credentials data associated with said proxy software application, said credentials data consisting of a user ID and password for said proxy software application, said credentials data hardcoded within source code of said proxy software application;
- establishing, by said computer processor executing said proxy software application, secure communications between a first requestor, said proxy software application, and said resource server;
- transmitting, by said proxy software application, said credentials data to said resource server;
- processing, by said computer processor, said credentials data, wherein said processing said credentials data comprises:
- transmitting said credentials data to an authentication system to generate an authentication attempt;
- and
- receiving a result value associated with said authentication attempt;
- receiving, by said computer processor executing said proxy software application from a table structure within said resource server, a first session key comprising a string of characters for accessing resources in said resource server, wherein said first session key comprises a reset lifetime indicating a valid remaining lifetime remaining for the first session key encoded within said first session key;
- generating, by said computer processor executing said proxy software application, a first specified stale time associated with a date and time at which a validity of said first session key will expire, wherein said generating said first specified stale time comprises adding said master refresh period to a first current time, and wherein said reset lifetime is greater than said first specified stale time;
- generating, by said proxy software application from said refresh count, a first updated refresh count;
- storing within said internal session cache, by said proxy software application, said session ID, said first session key, said first updated refresh count, said first refresh period, and said first specified stale time;
- periodically determining, by said proxy software application, if the first session key should be refreshed;
- and
- refreshing the first session key when the proxy software application determines that the first session key should be refreshed, wherein said refreshing occurs iteratively until a pre-configured refresh count has been reached, and wherein said refreshing comprises:
- transmitting, by said proxy software application to said resource server, a request for a new session key;
- retrieving, by said proxy software application from said internal session cache, said first session key;
- transmitting, by said proxy software application to said resource server, said first session key, wherein said first session key currently comprises a valid and almost expired session key;
- receiving, by said proxy software application from said resource server in response to said request, a second session key associated with said resource server;
- calculating, by said proxy software application, a second specified stale time associated with said second session key, wherein said calculating said second specified stale time comprises adding said master refresh period to a second current time;
- generating, by said proxy software application from said first updated refresh count, a second updated refresh count;
- removing, by said proxy software application from said internal session cache, said first specified stale time and said first updated refresh count;
- and
- storing within said internal session cache, by said proxy software application, said second session key, said second updated refresh count, and said second specified stale time.